1

我正在开发 C# Web 服务。

我已经部署了一个 Web 服务,它在我的本地系统上运行良好,但是当我尝试在我的虚拟专用服务器上运行相同的服务时,它返回一个错误。

这是我的连接字符串

Data Source = <serverinstance>\\SQLEXPRESS; Initial Catalog = DomainTable; User ID= <serverinstance>\\admin; Password = <Windows_Login_Password>

在此之前我使用这个连接字符串

Data Source=<serverinstance>\\SQLEXPRESS; Initial Catalog=DomainTable; Integrated Security=SSPI";

他们都不为我工作。请帮助它真的很重要

4

2 回答 2

2

数据源=serverinstance\SQLEXPRESS;
-----------------------------------------^ 这里只有一个斜线

还要确保远程服务器可以看到您引用的任何<serverinstance>. 你可能有这个,localhost但你的网络服务器不认为你的机器是本地主机。它也可能无法通过名称访问它,特别是如果它位于不同的域中。

如果您尝试使用 Windows 身份验证,那么您根本不应该使用:

用户 ID = serverinstance\admin;密码 = Windows_Login_Password

哇,永远不要在任何地方硬编码 Windows 密码。如果要使用 SQL 身份验证,则设置 . 否则,您应该使用它而不是用户 ID / 密码:

持久安全信息 = true;

并确保 IIS 用户已被授予访问您的 SQL Server 的权限。

于 2012-07-05T19:13:54.997 回答
0

试试吧;

"data source=.\\SQLEXPRESS;Integrated Security=SSPI;initial catalog=DomainTable"

我相信用户名/密码一般只需要远程连接,你必须为指定的数据库设置它们。如果您没有要求登录凭据,上面的连接字符串应该可以让您继续在本地计算机上运行 sqlexpress 实例。

编辑

如果您使用 IIS 来托管,这是我最近为部署和设置应用程序池以使用 SQL Express 2008 所做的一篇文章中的一部分。即使您不使用 IIS,您仍然需要执行类似的操作使用 SQL Server 正确设置您的托管环境。

步骤 1 为 IIS USER 创建数据库登录

在 MS SQL SERVER 的安全部分,需要右键单击用户和您的 IIS APPPOOL(IIS APPPOOL\apppoolname,在第 1 部分第 2 步中创建)。查看 dp.'s answer here for more step- Add IIS 7作为 SQL Server 登录的 AppPool 身份

步骤 2 为数据库上的 IIS USER 设置权限

右键单击数据库名称,然后单击属性。在权限部分添加您刚刚创建的 APPPOOL 用户,一定要给他 Execute \Select permissions required 。

注意:Website1 也需要执行、选择、删除、插入权限。Website2 也在使用这个不应该的应用程序池,因为我们不需要让用户在 trimdynamics 应用程序中拥有这种功能。我们可以分离应用程序池,以便我们的修剪动态 IIS USRS 仅获得执行和选择权限。

如果这没有帮助,如果没有对托管结构的具体了解,就很难说出真正发生了什么,因为从开发环境部署到生产环境时会有很多问题:(

于 2012-07-05T19:19:22.793 回答