发布 IIS 时连接到 DB.mdf 时出错

Error Connecting to DB.mdf when published IIS

我一直在搜索所有不同的资源来解决我的问题。我已经在 IIS 上发布了一个我一直在开发的网站,这是我在 IIS 上发布的第一个网站。

我好像无法连接到数据库。

我会在这里提供我所做的一切..

感谢任何帮助....

我的web.config文件在发布的网站目录C:\FinancialHubTest中。 在旁注中,我还尝试将 User Instance=True 添加到我的 web.config 文件中的连接字符串,但它不起作用..

<connectionStrings>
    <!--<add name="ConnStr" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFileName=|DataDirectory|\FinancialHub.mdf;Integrated Security=True" />-->
    <add name="ConnStr" 
         connectionString="Data Source=(LocalDB)\.\IIS_DB;Integrated Security=True;" />
</connectionStrings>

来自 cmd

MSSQLLocalDB 的详细信息

C:\Windows\System32\inetsrv\config 中的 applicationHost 文件用 Notepad2 编辑。 我正在使用 FinancialHub 作为我在 IIS 中发布的网站的应用程序池

<applicationPools>
        <add name="DefaultAppPool" managedRuntimeVersion="v4.0" />
        <add name="Classic .NET AppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" />
        <add name=".NET v2.0 Classic" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" />
        <add name=".NET v2.0" managedRuntimeVersion="v2.0" />
        <add name=".NET v4.5 Classic" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" />
        <add name=".NET v4.5" managedRuntimeVersion="v4.0" />
        <add name="FinancialHub" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
          <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
        </add>
        <applicationPoolDefaults managedRuntimeVersion="v4.0">
            <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" />
        </applicationPoolDefaults>
    </applicationPools>

我发布的网站目录 App_Data 有 FinancialHub.mdf 文件

我的 SQL 服务器对象资源管理器,只有当我通过 Visual Studio 2015 运行 我的网站时才会出现连接我认为这将是 运行 宁在 IIS Express 上。 .

我每次在这里和那里更改时都会收到此错误,但我真的很确定为什么.. 或者更确切地说,我对 web.config 等所做的更改会导致此错误。我也检查了 windows 事件日志。

我也点击了这两个链接来处理这个问题,

Using LocalDB with Full IIS, Part 1: User Profile,

Using LocalDB with Full IIS, Part 2: Instance Ownership

如果需要更多信息,我可以提供..

我觉得我一直在拐弯抹角想弄清楚,但我似乎无法解决它..

非常感谢您的帮助。非常感谢。

即使在将应用程序发布到 IIS 后,您仍在使用 LocalDB。 LocalDB (SQL Database inside App_Data) 主要用于开发和测试目的。

当您在 IIS 上托管网站时,您需要一个真正的 SQL 服务器。因此,您需要在托管应用程序的同一台服务器或专用的 SQL 服务器中安装 SQL 服务器。然后将现有数据库附加或复制到 SQL 服务器。