我刚刚将我的MVC3 ASP.net web应用程序上传到我的服务器2008 R2 IIS7.5Express web服务器。
web应用程序加载良好,但当单击登录链接并尝试注册用户帐户或登录现有用户帐户时,我会得到以下错误:
“对不起,在处理请求时发生了错误。”
如果我在web服务器上浏览web应用程序(在IIS7.5中)并尝试登录链接,就会得到以下ASP错误:
“在建立到Server的连接时发生了与网络相关的或特定于实例的错误。无法找到或无法访问服务器。请验证实例名称是否正确,以及Server是否配置为允许远程连接。(提供程序: SQL网络接口,错误: 26错误定位服务器/实例指定)
“描述:在当前web请求的执行过程中发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息以及该错误起源于代码的位置。”
异常详细信息: System.Data.SqlClient.SqlException:在建立到Server的连接时发生了与网络相关的或特定于实例的错误。无法找到或无法访问服务器。请验证实例名称是否正确,以及Server是否配置为允许远程连接。(提供程序:specific,error: 26 -指定的服务器/实例定位错误)
"Source Error:在执行当前web请求期间生成未处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来标识。“
有人能帮我找麻烦吗?
在我的Web.Config中配置了两个数据库:
<connectionStrings>
<add name="DatabaseDBContext" connectionString="data source=|DataDirectory|Content_Database.sdf" providerName="System.Data.SqlServerCe.4.0"/>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>SQLCompact(Content_Database.sdf)数据库运行良好。只有在尝试访问aspnetdb.mdf数据库时才会得到错误。
ASPNETDB.mdf数据库实际上与加载2010中的Microsoft模板/教程时得到的内容完全相同。
我试着在我的was服务器上安装SQL 2008,以防这是问题,没有什么区别。
整个web应用程序在我的2010 Express开发服务器上运行得很好(我可以创建用户,并成功地登录用户的开关)。一旦上传到the服务器,它就会失败。
非常感谢-非常感谢:)
完整的Web.Config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=152368
-->
<configuration>
<connectionStrings>
<add name="DatabaseDBContext" connectionString="data source=|DataDirectory|\Content_Database.sdf" />
<add name="ApplicationServices" connectionString="data source=|DataDirectory|\aspnetdb.sdf" />
<!--<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />-->
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Admin/LogOn" timeout="2880" />
</authentication>
<membership>
<providers>
<clear/>
<add name="SqlCeMembershipProvider" type="Project1.Domain.SqlCeMembershipProvider" connectionStringName="ApplicationServices" applicationName="/"
enablePasswordRetrieval="false" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" writeExceptionsToEventLog="false" />
<!--<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
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="ApplicationServices" applicationName="/" />
</providers>
</profile>
<roleManager defaultProvider="SqlCeRoleProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All">
<providers>
<clear/>
<add name="SqlCeRoleProvider" type="System.Web.Security.SqlCeRoleProvider" connectionStringName="ApplicationServices" applicationName="/" writeExceptionsToEventLog="true" />
<!--<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />-->
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages"/>
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration发布于 2012-04-17 17:02:33
如果是Sql,它看起来就像DatabaseDBContext/SDF。这个引擎与管理员的观点有很大的不同。基本上,它是非常简单的设置和工作。
您的ApplicationServices/mdf文件不是Compact,它使用了普通的sql (express、dev、workgroup、standard、enterprise等)引擎。这确实需要一些调整才能开始工作。data source=选项是将SqlClient配置为使用安装在本地机器上的特定引擎来打开数据库(这将要求将SqlClient安装在本地计算机上,作为具有SqlExpress名称的实例安装),并正确配置为允许连接(可能是远程的)。Integrated Security将SqlClient配置为连接到服务器,因为用户在AppPool中配置为连接到数据库,这要求用户能够访问存储数据库的文件、数据库本身(作为安全性)以及SSPI的所有其他安全要求(我强烈建议您保留这些要求)。
更新
我有几个项目专门在Compact上运行(因为对于小型项目,维护/管理要容易得多)。
要使用SQLServerCompact4,您需要安装用于SQLServerCompact4的Visual工具。我使用erikej SQL Compact Providers (成员和角色)作为asp.net,没有遇到任何问题。关于提供程序的好处是,您针对当前提供程序编写的大部分代码不会更改,您只是在替换提供程序和数据库。
不管是哪种方式,快乐的编码!
更新2
我的web.config有以下条目:
<connectionStrings>
<add name="membershipDatabase"
connectionString="data source=|DataDirectory|\Membership.sdf" />
</connectionStrings>
<membership defaultProvider="SqlCeMembershipProvider">
<providers>
<clear />
<add name="SqlCeMembershipProvider"
type="Project1.Domain.SqlCeMembershipProvider"
connectionStringName="membershipDatabase"
applicationName="/"
enablePasswordRetrieval="false"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
writeExceptionsToEventLog="false" />
</providers>
</membership>
<roleManager defaultProvider="SqlCeRoleProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All">
<providers>
<clear />
<add name="SqlCeRoleProvider"
type="Project1.Domain.SqlCeRoleProvider"
connectionStringName="membershipDatabase"
applicationName="/"
writeExceptionsToEventLog="true" />
</providers>
</roleManager>https://stackoverflow.com/questions/10194773
复制相似问题