簡體   English   中英

當被其他類庫訪問時,類庫中消耗的WCF服務給出“找不到端點元素……”錯誤

[英]WCF Service consumed in Class Library, when accessed by other Class Library gives “Could not find endpoint element…” Error

我有一個包含三個項目的解決方案:

  1. WPF應用
  2. 類庫
  3. NUnit測試類庫

類庫具有在app.config中生成以下內容的服務引用:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <bindings>
      etc, etc
    </bindings>
    <client>
      <endpoint address="http://localhost:8088/myService                
          binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_myService"
          contract="Namespace.myService" name="BasicHttpBinding_myService" />
    </client>
  </system.serviceModel>
</configuration>

類庫具有訪問這些服務,檢索數據並將其打包以在WPF應用程序中使用的功能。 app.config文件從類庫復制到WPF應用程序項目后,WPF應用程序可以使用類庫中的數據訪問功能而沒有任何問題(在復制app.config之前,我得到了“找不到默認端點”嘗試從WPF應用程序調用這些方法時出現錯誤消息)。

當嘗試在測試庫中調用完全相同的函數並從NUnit運行它們時,出現類型為“在servicemodel客戶端配置部分找不到引用合約的默認端點元素”的錯誤。 其他帖子建議確保app.config文件在測試項目中-但是在我這樣做之后,它仍然給出相同的錯誤消息。 我該如何進行這項工作?

問題不在於項目的設置,而在於NUnit項目的設置。

設置NUnit項目時,我使用了“項目”>“添加程序集”工具欄選項將程序集添加到NUnit項目中(使用NUnit GUI)。 此時,NUnit在與我保存NUnit項目設置相同的目錄中尋找配置文件。 這導致錯誤,在需要時找不到配置設置。

通過在NUnit GUI中轉到“項目”>“編輯”,然后將“項目庫”設置為測試項目的\\ bin目錄,將“配置文件名”設置為項目的配置文件的文件名,可以解決此問題。 之后,NUnit現在可以在運行測試時找到正確的配置文件,從而解決了該問題。

暫無
暫無

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

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