簡體   English   中英

Web服務中的其他方法未顯示

[英]Additional method in webservice not showing up

我寫了一個 ASP.NET web 服務,它有兩種方法。 這些運行良好並顯示在http://localhost:85/Services/NopService.asmx?WSDL

如果我添加另一種方法,我將無法訪問新方法!

相應的文件在 D:\Web\NopCommerceStore\Services\NopService.asmx 和..asmx.cs 沒有其他同名的文件!

如果我只是添加另一種方法,例如:

[WebMethod]
public string Hi(string you)
{
    return "Hi " + you;
}

and navigate to http://localhost:85/Services/NopService.asmx?WSDL the new method does not show up - even after: Restart IIS Clear temp.asp.net folder clear hash.web

如何使用新方法更新我的 web 服務?

謝謝!

如果您從另一個項目復制了 .asmx 文件,請務必更改代碼隱藏文件和標記中的命名空間(右鍵單擊 .asmx 文件並選擇“查看標記”)。

否則,標記文件將具有指向前一個項目的 Class 屬性。 如果您的系統上仍然存在之前的項目,則無論您在新的代碼隱藏文件中做了什么,都會引用它的方法。

重新編譯您的 web 服務代碼,然后在項目中更新其引用調用它。

確保您發布的.dll 不在 GAC 中。 我遇到了類似的問題,花了幾天時間試圖弄清楚。 原來它在 GAC 中,一個簡單的 gacutil /q /f 和應用程序池的回收修復了它。

在解決方案資源管理器中右鍵單擊您的服務並更新 web 服務。 我檢查過。

其中一件事欺騙了我並且沒有看到我在 WSDL 中的更改——我打開了多個 Visual Studio 實例,使用同一解決方案的不同版本,它從不同的實例中選擇舊版本。

正確的方法是右鍵單擊客戶端 ASP.NET 項目中的 App_WebReferences 文件夾並選擇“更新 Web/服務引用”選項。 這將導致IDE到go,並抓取后端web服務定義文件的最新版本。

當您右鍵單擊 App_WebReferences 文件夾並更新 web 引用時,您實際上是在更新 ASP.NET 應用程序正在使用的所有 web 服務的定義。 這意味着,如果您引用了幾個不同的 web 服務,它將 go 到每個服務以獲得一組更新的定義。 在您只想更新一個 web 服務定義(即您知道的服務定義已更改)的某些情況下,這可能不是必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM