0

我开发了一个在我的本地 IIS7 服务器上运行良好的应用程序。我可以使用本地网络上的另一台机器登录它并访问所有区域。

在使用 IIS6.0 和 SQL Server 2005 将其部署在 SBS2003 服务器上后,我遇到了访问问题。我已经对此进行了排序,现在我可以加载 Web 应用程序并登录。当我想访问需要身份验证的页面时,问题就开始了。即使我已登录,我也无法加载该页面。不用说,这也适用于需要 RBA 的页面。

我得到的当前错误消息是:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

如果您要通过告诉我问题的答案在错误消息中来回答这个问题,那么请首先记住我可以登录到我的应用程序。我显然与数据库有联系。在那之后,如果答案仍然很简单,请随时嘲笑我。

这是我的 web.config:

<?xml version="1.0"?>

<configuration>
  <connectionStrings>
    <add name="ZenIntranetConnectionString" connectionString="Data Source=127.0.0.1;Database=ZenIntranet;Integrated Security=True;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime maxRequestLength="8192" executionTimeout="360"/>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ZenIntranetConnectionString"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ZenIntranetConnectionString" applicationName="/"/>
      </providers>
    </profile>

    <roleManager enabled="true" defaultProvider="ZenRoleProvider">
      <providers>
        <clear/>
        <add name="ZenRoleProvider" type="BusinessClasses.ZenRoleProvider, BusinessClasses" 
        connectionStringName="ZenIntranetConnectionString"
            applicationName="/" />
      </providers>
    </roleManager>

  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

谢谢你的帮助。我真的很需要它。

PS我只是在<roleManager>标签中添加了连接字符串名称。我以前从未需要它,我的本地 web.config 似乎也不需要它。我暂时把它留在了他们的地方,因为我看到其他人说这是必要的。无论如何,它不起作用。

4

1 回答 1

0

问题是用于数据类层中的数据集设计器的硬编码连接字符串(由 VS 生成)。

我可以正常登录,因为主页没有加载任何数据对象,但只要我需要 dataset.xsd 文件中的某些内容,应用程序就会使用 DAL 中的硬编码连接字符串(它仍然有我的开发服务器连接字符串)。在对connectionString.

在旁注中,我认为 web.config 应该覆盖它,但它没有。

于 2013-11-08T00:45:45.667 回答