我目前有多個項目解決方案中的一個Web服務。由於我不想在所有項目中添加服務引用以便能夠使用它,因此我暫時創建了一個名爲「ServiceHelper」的靜態類的項目。這個項目將是唯一一個帶有服務引用的幫助者將完成所有請求。 Web服務被公開(而不是內部)。所有項目都需要Web服務引用嗎?
這裏我的問題是,當我從另一個沒有服務引用的項目在我的助手中初始化我的SoapClient時,它會引發異常。但是,當我將服務引用添加到其他項目時,它可以工作。這是否正常?
翻譯出來的異常(因爲用法語說)是: 無法找到元素端點默認值是指ServiceModel客戶端配置中的合同'ServiceReference.WebServiceSoap'部分。這可能是由於您的應用程序的配置文件未找到,或者在客戶端元素中找到了與此合同匹配的端點元素
我的配置文件中是否缺少某些內容?因爲我沒有改變任何提到的兩個項目。
爲例我如何初始化我在SoapClient的我的幫助:
private static ServiceReference.WebServiceSoapClient _webService = new ServiceReference.WebServiceSoapClient();
這顯然是第二個項目的app.config中缺失部分的問題。比較配置,我相信你會注意到缺少的東西。請記住,爲了避免配置問題,這可能會使你的ServiceHelper獨立於app.config。如果你的「客戶」和你的「服務」在你的項目中是本地的,你可以從代碼構建所有必要的配置(綁定等)。 – 2014-10-27 18:09:21
我不知道你必須在客戶端項目的配置文件中添加必要的部分,所以它會去幫助程序。我已經將我的幫助程序項目的配置文件中引用Web服務的內容複製到客戶端項目中,而無需添加服務引用,現在它可以工作。我一定會試着把它放在我的代碼中,而不必再這樣做了。謝謝! – TheBlainer 2014-10-27 19:19:37