大家好,又見面了,我是你們的朋友全棧君。
今天看到一張圖,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.Net\Framework\<version>\CONFIG\DefaultWsdlHelpGenerator.aspx,可是适當修改”
ok,然後再具體找,發現怎麼改呢,看到網上這麼一個答案:
“By default .Net framework provides a default DefaultWsdlHelpGenerator.aspx under
<windir>\Microsoft.Net\Framework\<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