我使用C# ASP.NET Webform应用程序,无法从ASP.NET Web方法连接到SQL Server。(框架4.6)
连接未打开。从非webservicce方法打开相同的安装程序。
我的连接字符串:
string constr = @“数据源= LAPTOP-IUDF 0 K61\BTFSQLSERVER;初始目录=测试;集成安全性=True”;
连接使用windows身份验证,但我认为WebMethod用户是基于IIS的,这就是它失败的原因。
问:如何将正确的IIS用户添加到SQL Server,以便conn不会失败。
1条答案
按热度按时间8cdiaqws1#
好吧,你是在你的开发计算机上运行这个,还是你正在发布到一些运行IIS的实时或开发服务器上?
我的意思是,要设置连接,我假设您使用连接构建器,将连接设置添加到项目中,并且正在使用它?(您不会每次编写代码时都输入连接字符串,对吗?)
因此,为项目设置一个连接,并测试该连接。无论是桌面还是其他?您希望让Visual Studio为您构建和设置连接。然后在代码中,您可以反复使用该连接设置。
因此,从vs转到project-〉“your project name”属性。
所以这个:
当然,在这个“测试”项目中,我已经使用了“许多”连接,但是让我们创建一个新的连接。
现在,在Project中,选择Settings,我们得到:
因此,我们创建一个新的连接。
因此,请注意,不要键入您的计算机名称(在本例中,服务器名称是您的开发计算机)。
但是,还要注意我们如何进行测试连接。
好了,现在我们有了一个有效的连接,测试了连接。
但更重要的是,我们还没有写任何代码!!!
好了,现在让我们在代码中尝试/使用该连接。
比如说一个网格视图来显示一些酒店。
因此,在网格视图中拖放到页面。
所以,这个标记:
下面是code behind:
现在我们有了这个:
请注意,当您按照上述设置连接时?
Visual Studio会在Web配置中为您放置/创建此连接。
当然,在发布到生产服务器之前,您需要更改该连接,但要设置这样的连接,只需让Visual Studio为您创建此连接。
还要注意的是,我没有在上面输入我的计算机的名称,而是使用“.”来表示本地主机名。(这在Windows中的大多数地方都有效-即使在登录到服务器时,您不需要“域”名称,或者您不知道计算机的主机名。
如果你有几个开发人员并且使用github,这个设置也很好用(我们都有不同的计算机名称,但是使用“.”代替你的计算机名称意味着连接将适用于所有开发人员和他们的SQL Server本地运行副本。
我当然会启动SQL Studio管理,并仔细检查是否可以连接,当然也要检查SQL Server的“示例”。
默认值为“SQLEXPRESS”。
另外,请注意,您现在真的需要确保您不仅运行SQL Server(我们假设此讨论是本地的),还需要确保SQL浏览器服务也在运行。这一个:
既然你做开发,那么我假设你确保你的SQL Server的本地副本启用了tp/ip连接。
(我会启用所有3个)。
但是,如果您的本地SQL服务器设置的位和部分不工作?然后“测试连接”按钮将显示您没有一个有效的连接,无论如何,对吗?
现在,在你的问题标题中,你提到/注意到/建议/暗示你试图构建一个web方法调用?好吧,在web方法调用(终点)中使用连接与上面的代码没有任何不同-你的代码仍然可以自由使用你按照上面所做的设置和连接。
所以,如果我想要一个web方法(“真正”令人惊讶的是任何web方法都支持SOAP + xml,JSON,甚至通过URL使用URL的参数的REST调用)。
所以,现在让我们在web方法中使用该连接字符串。
所以,客户端代码- web方法调用(jQuery)。
我们有这个:
代码隐藏:(soap、web方法(带头)还是rest?
这是可行的:
我们现在看到/得到这个:
因此,无论是Web方法(端点),还是简单的代码,一旦在项目中建立了连接,您就可以测试连接,然后才可以开始编写代码。
因此,让VS为您构建和设置连接-它实际上只是鼠标点击,这将确保您在编写任何代码之前有一个工作连接字符串。