0

我已经创建了一个 WCF 服务并在 IIS (5.1) 中托管了该服务。

我使用了 basicHttpbinding 和 wsHttpBinding.Follwoing 是绑定的配置声明。

<service name="ServiceLibarary.DummyService" behaviorConfiguration="mexHttp">
   <endpoint address="Soap11" binding="basicHttpBinding" contract="ServiceLibarary.IService" bindingConfiguration="basicHttp"/>
   <endpoint address="Soap12" binding="wsHttpBinding" contract="ServiceLibarary.IService" bindingConfiguration="wsHttp"/>
   <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>

以及各自的绑定配置

<bindings>
   <basicHttpBinding>
      <binding name="basicHttp">
         <readerQuotas/>
         <security mode="None">
            <transport clientCredentialType="None" />
         </security>
      </binding>
   </basicHttpBinding>
   <wsHttpBinding>
      <binding name="wsHttp">
         <security mode="None">
            <message clientCredentialType="None" />
            <transport clientCredentialType="None" />
         </security>
      </binding>
   </wsHttpBinding>
</bindings>

我已经创建了 ASP.MVC Web 应用程序作为客户端。我在项目中有 Linq-to-Sql 类Service。问题是当我运行客户端(MVC 应用程序)并绑定登录时,我得到了

无法打开登录请求的数据库“WCF”。登录失败。由于用户错误登录失败。

WCF数据库的名称在哪里。

我正在使用基本绑定在客户端初始化代理类。

当我从同一解决方案添加服务引用时,即从 WCF 服务构建的解决方案中获取服务引用(与 MVC 应用程序相同),它工作正常。以下是我拥有的connectionString

   <connectionStrings>
    <add name="ServiceLibarary.Properties.Settings.WCFConnectionString"
        connectionString="Data Source=localhost;Initial Catalog=WCF;Integrated Security=True"
        providerName="System.Data.SqlClient" />
</connectionStrings>

我正在使用 Window XP 和 .NET 3.5。知道为什么会这样吗?我是不是错过了什么。

4

1 回答 1

1

这不是 WCF 配置问题,而是数据库/连接字符串问题。

连接字符串指向在此配置中不可访问的本地数据库。

Data Source=localhost;

您需要相应地修改连接字符串或检查数据库的配置,以适用于您的环境。

在我看来,远程机器确实有一个数据库服务器正在运行,但它要么没有相应的“WCF”数据库,要么用户名/密码不正确。

于 2012-08-16T06:55:06.430 回答