1

我已经编写了一种方法,用于使用如下所示的实体框架将一些数据插入到数据库中,该框架称为 wcf 服务

  bool status=false;
           MyDataContext dc = new MyDataContext();
           var getData = dc.Register.FirstOrDefault(x => x.DeviceId == deviceId.Trim());
           if (getData != null)
           {
               status = true;
           }
           return status;

在本地它插入成功。但是在发布后我尝试再次插入。当时我得到了异常The provider did not return a ProviderManifestToken string我该如何解决这个错误?

连接字符串

<connectionStrings>
    <add name="DataContext" connectionString="Data Source=MYNAME\SQL2008R2; Initial Catalog=MyDb; Integrated Security=True; MultipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
4

1 回答 1

3

您的连接字符串使用 Integrated Security = true。

这意味着与数据库的连接是使用调用进程的安全上下文建立的。

当您在本地运行时,您处于用户的安全上下文中。因此,它有效。

当您部署到 IIS 时,默认情况下您处于应用程序池的安全上下文中,即 NETWORK SERVICE。由于 NETWORK SERVICE 无权访问数据库,因此您会收到错误消息。

于 2013-04-29T20:25:00.173 回答