2011-11-24 28 views
3

我有一個WCF Web服務網站,Web服務庫和一個和我有一個使用Fluent nHibernate的域項目。當在「WCF測試客戶端」中運行時,流利的Nhibernate「無效或不完整的配置」

當我運行WCF項目並運行調用Web服務時,它工作正常,只要它不是訪問數據庫的服務即可。

如果我援引訪問DB Web服務,我一直在這裏得到一個錯誤:

 _sessionFactory = Fluently.Configure() 
      .Database(MsSqlConfiguration.MsSql2008.ConnectionString(@"Server=MYSERVER;database=MYDATABASE;Trusted_Connection=true;") 

       .ShowSql() 
      ) 
      .Mappings(m => m.FluentMappings 
        .AddFromAssemblyOf<WhygoDomain.Location>()) 
      .ExposeConfiguration(cfg => new SchemaExport(cfg) 
      /* .Create(true, true)*/) 
      .BuildSessionFactory(); 

它說: 在創建一個會話使用了無效的或不完整的配置。請參閱PotentialReasons集合和InnerException以獲取更多詳細信息。

內部異常說: 建立到SQL Server的連接時發生網絡相關或實例特定的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (provider:TCP提供程序,error:0 - 無連接可以作出,因爲目標機器積極地拒絕它。)

,如果我做了以下我沒有得到這個消息: 1)右鍵單擊Web服務。 svc並複製「在瀏覽器中查看」鏈接。 2)(在WCF測試客戶端)右鍵單擊「我的服務項目」 - >「添加服務」並粘貼上面的URL 1)

我一直這樣工作了一段時間,但它是一個這意味着我無法調試,這是不可接受的。

這裏發生了什麼? 這似乎是一個連接到數據庫的權限問題,但我對這個大多數人都是新手,所以它可能是別的。

我試過給任何用戶我可以想到的數據庫的權限,但沒有改變。 WCF測試客戶端使用什麼用戶,有誰知道?

這個問題的結果是我無法調試我的web服務,這對我來說是一個問題。我想我可以嘗試附加到流程或其他東西,但這不會是理想的,因爲我有大量的Web服務工作在地平線上。

+0

你可以發佈完整的異常('ex.ToString()')嗎? – Firo

+0

@Firo,我現在在那裏添加了那個細節。 – iKode

+0

您是否嘗試在連接字符串中使用明確的用戶名和密碼? –

回答

1

檢查您的服務在IIS中運行時是否完全信任。儘管如果您可以修改C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config中的文件web_mediumtrust.config,您可以在SecurityClasses部分中添加OLEDB或ODBC,但只能在IIS下以完全信任方式工作:

<SecurityClass Name="OleDbPermission" Description="System.Data.OleDb.OleDbPermission, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
<SecurityClass Name="OdbcPermission" Description="System.Data.OleDb.OdbcPermission, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
0

連接字符串是否設置爲Windows身份驗證?如果是這樣,請將其設置爲SQL Server身份驗證,並查看它是否仍能在本地進行測試。同時檢查數據庫設置爲同時使用Windows身份驗證和SQL Server身份驗證。

相關問題