sql-server 如何将通过IIS Express运行的Web服务连接到SQL Server

vyswwuz2  于 2022-10-31  发布在  SQL Server
关注(0)|答案(1)|浏览(242)

我正在尝试通过Windows 10笔记本电脑上的Visual Studio代码运行Web应用程序(http://localhost:3000/),并连接到同一asp.net台计算机上通过Visual Studio(http://localhost:44389/)中的www.example.com开发的服务。
当应用程序运行时,我收到以下错误:
建立与SQL Server的连接时发生与网络相关的或特定于示例的错误。找不到服务器或无法访问服务器。请验证示例名称是否正确,以及SQL Server是否配置为允许远程连接。
我尝试使用基于此帖子的以下命令将服务添加到SQL Server安全性中:
IIS not able to connect to LocalDB

CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
 CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];

我用我的项目名称(ABC.dll中的ABC)替换了MyAppPool,但得到了以下错误:
消息15401,级别16,状态1,第4行
找不到Windows NT使用者或群组'IIS APPPOOL\ABC'。请再次检查名称。
我甚至试过这个,但也失败了:

CREATE LOGIN [IIS APPPOOL\localhost:44389/] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\localhost:44389];

我已经在我的计算机上激活了IIS,并且由于在部分代码中我们使用了数据集,因此连接字符串设置如下:

"Data Source=127.0.0.1;Initial Catalog =XXDB ;Integrated Security = True"

如有任何建议,我们将不胜感激。

mnemlml8

mnemlml81#

哼,如果一切都在您的开发机器上本地运行呢?
只需使用VisualStudio连接到SQLServer。它将为您完成所有的“舞蹈”。
因此,在您的vs项目中,只需使用设置,并让VS为您完成此操作。
因此,在您的项目中,进入项目-〉“ProjectName”属性。
然后是设置
然后你会看到这个屏幕:

因此,让我们连接到一个名为TEST 4的数据库(也可以将连接称为TEST 4)。
有了上面的说明,您就可以使用向导来设置连接。
当然,您可以使用Windows身份验证“始终”连接到本地计算机上的SQL Server,因为您是自己计算机的“超级用户”。
所以,让我们这样做:
因此,从上面,我们可以点击设置中的[...]按钮,并建立连接。
我非常强烈地建议您为这个安装程序安装SQL Server Express。
好的,那么点击这个:

现在我们只需按照向导设置连接即可。
在下拉列表中,应显示您的SQL Server本地示例。
就像这样:

如果您的本地服务器未出现,则
确保您正在运行SQL Server的所谓“浏览器”服务(与Web浏览器无关!)。
那就是这项服务:

此外,在执行此操作时,请确保tc/ip已打开。(通常不必执行此操作,但我建议您执行此操作)。
因此,在SQL Server网络配置中,您会看到:
x1c4d 1x指令集
所以,只要你KNOW sql server正在运行。
同样,毫无疑问,我们假设您已经安装了SQL管理工具,对吗?
(Visual Studio、SQL Server Express和SQL管理工作室都是免费的)。
好的,那么回到简单的连接向导,我们只需要用鼠标点击就可以设置了?
然后这个:

选择数据库后,再进行hit test连接。
例如:


指令集
因此,您不必执行您记下的所有步骤。
IIS将很好地连接到SQL服务器,您只需确保SQL服务器正在运行,并有ZERO ZERO ZERO ZERO用于尝试各种权限设置到IIS时,上述将足以。
我建议您在混合模式下安装SQL Server(Windows身份验证和SQL Server身份验证)。
对于测试和开发,您可以简单地使用上面的windows身份验证,但是您可能希望使用SSMS添加一个登录用户,从而使用您创建的sql登录进行连接。
但是,即使是在生产服务器上?我从来没有在IIS中创建权限以允许它连接到sql server。您所需要的只是一个有效的连接字符串,您应该可以开始了。
好了,现在我创建了上面的连接了吗?
然后在代码中我可以这样使用它。
让我们将一个网格视图拖放到aspx页面中,如下所示:

<asp:GridView ID="GridView1" runat="server">

        </asp:GridView>

后面的代码是:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        LoadGrid
    End If

End Sub

Sub LoadGrid()

    Dim strSQL As String =
        "SELECT FirstName, LastName, City, Description, HotelName
        FROM tblHotelsA ORDER BY HotelName"

    Using conn As New SqlConnection(My.Settings.TEST4)
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            Dim rstData As New DataTable
            rstData.Load(cmdSQL.ExecuteReader)
            GridView1.DataSource = rstData
            GridView1.DataBind()
        End Using
    End Using

End Sub

现在我们得到这个:

因此,请确保SQL Server已启动并正在运行。
确保您可以从SSMS使用/连接。
请确保您运行的是sql浏览器服务。
打开tc/ip。
然后使用VS中的向导进行连接,并在开始编写代码之前测试连接。
上面的连接构建还意味着我们有一个系统范围的连接可以使用(并且代码中没有杂乱的连接字符串)。
更好的奖励点?项目-〉设置当您建立一个连接与向导?它还把连接内的web配置为您,进一步节省麻烦和世界贫困。

相关问题