我的團隊和我有一個asp.net網頁表單應用程序,並使用幾個類庫。在其中一個庫中,我們試圖使用Web服務。 Web引用添加到Web應用程序項目中,並添加了相應的引用。該應用程序編譯。當嘗試使用類庫中的所述Web服務時,憑據似乎不起作用,並且調用失敗。但是,如果我們將Web服務調用從類庫中取出,並在Web應用程序中使用它,它就會起作用。從類庫中的asp.net應用程序中消費Web服務
任何想法,爲什麼這不是在類庫中工作。
我的團隊和我有一個asp.net網頁表單應用程序,並使用幾個類庫。在其中一個庫中,我們試圖使用Web服務。 Web引用添加到Web應用程序項目中,並添加了相應的引用。該應用程序編譯。當嘗試使用類庫中的所述Web服務時,憑據似乎不起作用,並且調用失敗。但是,如果我們將Web服務調用從類庫中取出,並在Web應用程序中使用它,它就會起作用。從類庫中的asp.net應用程序中消費Web服務
任何想法,爲什麼這不是在類庫中工作。
可能是你說錯了! 下面是一個例子:
var serviceName = new ServiceName
{
Credentials = new NetworkCredential("Username", "Password", "Domain"),
Url = "Here you put the correct url of the web service if you published somewhere else"
};
serviceName.CallWebMethod();
確保你輸入了正確的憑據的用戶名和密碼,並確認您發佈的網絡服務來訪問它的地方。
仔細檢查您的配置文件是否包含Web服務的正確信息。
嘗試將URL行爲更改爲動態。
另外,正如約翰所說,我假設您將服務添加到類庫,因爲您打算從庫中使用它,而不是Web應用程序的其他區域。
「證書似乎不起作用,並且調用失敗」......您能否給出一個小堆棧錯誤跟蹤?
只是爲了澄清,在我當前的項目中,我們使用綁定和憑證在類庫中使用WCF端點。當您嘗試時,可以爲SOAP ASMX Web引用完成相同的操作。
您可以通過執行以下步驟添加Web服務引用:
如果您在應用程序中添加引用,然後利用從類庫中獲取它...如何調用類庫...通過添加引用並調用類庫的方法,然後如何從類庫中訪問代理需要引用它...在我看來,循環參考。這不應該在第一時間編譯...你是否正確描述你的結構?
最好只用Web引用添加一個簡單的項目,然後在需要它的所有項目中添加此項目的引用。
您是否在Web應用程序的配置文件中定義了任何憑據信息?如果是這樣,類庫可能無法正確獲取它們。只是一個猜測。約翰桑德斯是對的。看起來有點落後,閱讀你的應用程序結構的描述。
您可以通過執行以下步驟添加Web服務引用:
右鍵單擊在解決方案資源管理器 點擊項目添加服務引用 單擊高級 你會發現「添加Web引用」末的形式
通過@ AMGdy的解決方案,它會自動生成一個Reference.cs類。它定義了所有的webservices方法。
如果您從類庫中使用它,則應該將該服務引用添加到類庫中。 – 2011-02-16 15:21:19
你指的是添加實際的Web引用或System.Web.Services引用。 – developerdoug 2011-02-16 15:27:33
我建議您使用「添加服務引用」而不是「添加Web引用」,並將其添加到類庫中。 – 2011-02-16 20:20:11