【问题标题】:Error Connecting to DB.mdf when published IIS发布 IIS 时连接到 DB.mdf 时出错
【发布时间】:2017-07-28 14:52:23
【问题描述】:

我一直在搜索不同的资源以解决我的问题。我在 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 的详细信息

使用 Notepad2 编辑的 C:\Windows\System32\inetsrv\config 中的 applicationHost 文件。 我正在使用 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 Server 对象资源管理器,该连接仅在我通过 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

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

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

我真的很感激任何帮助。非常感谢。

【问题讨论】:

  • 不要上传图片的代码。我们对此无能为力,任何试图帮助您的人都必须重新输入所有内容。这就像给机械师拍张照片并让他们告诉你出了什么问题一样有意义。
  • Siyual 你对我的问题有什么解决办法吗?感谢您的编辑@marc_s

标签: c# asp.net sql-server web-config


【解决方案1】:

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

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

【讨论】:

  • 所以我必须在我的连接字符串中使用这样的东西? Data Source=.\SQLEXPRESS;Initial Catalog=OldFashionedDB;Integrated Security=True 请问有什么指南可以参考吗?
  • SQLExpress 非常适合测试。您需要更新指向 SQLExpress 的连接字符串。
  • 无法使用 MSSQLLocalDB 让 App_Data 在我的本地托管网站中工作?
  • 破解它的方法很少。但是,您不应该使用本地计算机以外的 LocalDb。您应该至少使用 SQL Express 进行测试。
  • 不值得使用 LocalDb。最简单最快的方法是使用 SQLExpress。如果连接 SQL Express 时出错,请查看Why am I getting “Cannot Connect to Server - A network-related or instance-specific error”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-27
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多