大家好,又见面了,我是你们的朋友全栈君。
今天看到一张图,asmx的WebService。长这样:
当时就感觉有意思,这个页面风格和我们平时的不一样,我们平时的WebService长这样:
我们如果在WebMetohd上面加注释,即 [WebMethod(Description = “注释”)],那么长这样:
那么问题就来了,第一张图里面的样式是如何实现的呢?在浏览器上进入调试模式观察,可以发现它的html和我们的有点不一样~~~~那么,意味着我们也去修改这个html就可以了。
然后打开一个简单的WebServce项目,发现找不到一个可以改html的地方,emmmmmmmmm。那么可以猜想是调用了一个默认的html。配置文件里面也没写,看来默认还是写死的。那就只有上网查资料了!
查了一些资料后,大概了解到了:
“在.net环境下用浏览器打开.asmx文件时,实际上是利用了.net提供的测试工具在测试WEB SERVICE,而WEB SERVICE本身一般是不提供GUI的,所以不必关心测试界面的效果,只要功能实现就可以了。测试界面的一些内容是由WEB SERVICE的属性决定的,如[WEBSERVICE(Description,Name,Namespace)],WebMethod[Description,MessageName];如果该测试界面的生成文件是:%SystemRoot%Microsoft.NetFramework<version>CONFIGDefaultWsdlHelpGenerator.aspx,可是适当修改”
ok,然后再具体找,发现怎么改呢,看到网上这么一个答案:
“By default .Net framework provides a default DefaultWsdlHelpGenerator.aspx under
<windir>Microsoft.NetFramework<version>Config
you can override it in your application by change the web.config.
<?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<system.web>
<webServices>
<wsdlHelpGenerator href=”MyServiceDescriptionGenerator.aspx”/>
</webServices>
</system.web>
</configuration>
Hope this helps”
ok,问题就明确了,确实是调用了一个默认的aspx,并且我们可以通过配置
<webServices>
<wsdlHelpGenerator href=”MyServiceDescriptionGenerator.aspx”/>
</webServices>
的方式来指定调用那个界面。然后我找这个路径找了好久(我电脑上Framework版本太多了),后来转念一想,我何苦去找呢,我自己写一个,然后把配置路径配全路径就行了~
于是乎,我随便找了个DefaultWsdlHelpGenerator.aspx,然后复制出来改名为my.aspx(不改名也行,别和路径下同名文件冲突就行),改完后把配置项里面改动配置:
然后调试,发现确实是调用了我自己定义的界面。(我在body里面加了一行<h1>This is a Test<h1>)
如果想做到博文开头那样的效果,既是继续去修改html了,这些细节本博文就不讨论了。读者有兴趣可以自己去定义一个有特色的WebServce。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130816.html原文链接:https://javaforall.cn