0

我目前有多個項目解決方案中的一個Web服務。由於我不想在所有項目中添加服務引用以便能夠使用它,因此我暫時創建了一個名爲「ServiceHelper」的靜態類的項目。這個項目將是唯一一個帶有服務引用的幫助者將完成所有請求。 Web服務被公開(而不是內部)。所有項目都需要Web服務引用嗎?

這裏我的問題是,當我從另一個沒有服務引用的項目在我的助手中初始化我的SoapClient時,它會引發異常。但是,當我將服務引用添加到其他項目時,它可以工作。這是否正常?

翻譯出來的異常(因爲用法語說)是: 無法找到元素端點默認值是指ServiceModel客戶端配置中的合同'ServiceReference.WebServiceSoap'部分。這可能是由於您的應用程序的配置文件未找到,或者在客戶端元素中找到了與此合同匹配的端點元素

我的配置文件中是否缺少某些內容?因爲我沒有改變任何提到的兩個項目。

爲例我如何初始化我在SoapClient的我的幫助:

private static ServiceReference.WebServiceSoapClient _webService = new ServiceReference.WebServiceSoapClient(); 
+2

這顯然是第二個項目的app.config中缺失部分的問題。比較配置,我相信你會注意到缺少的東西。請記住,爲了避免配置問題,這可能會使你的ServiceHelper獨立於app.config。如果你的「客戶」和你的「服務」在你的項目中是本地的,你可以從代碼構建所有必要的配置(綁定等)。 – 2014-10-27 18:09:21

+0

我不知道你必須在客戶端項目的配置文件中添加必要的部分,所以它會去幫助程序。我已經將我的幫助程序項目的配置文件中引用Web服務的內容複製到客戶端項目中,而無需添加服務引用,現在它可以工作。我一定會試着把它放在我的代碼中,而不必再這樣做了。謝謝! – TheBlainer 2014-10-27 19:19:37

回答

0

與@ zverev.eugene繼,你不需要在每一個項目中的引用,但在web.config或app.config中在項目中是從中檢索連接和配置信息的地方。這是因爲調用類庫的應用程序是提供所有配置信息的應用程序(例如,如果在類庫中有數據訪問層,則連接字符串將來自調用DAL的應用程序的.config,而不是類庫本身)。