ASP.NET [Win32Exception(0x80004005):访问被拒绝]错误
当我通过按F5在Visuall Studio中测试它,它工作正常,我可以登录网页和sql查询过程很好地工作。另外请注意,我的SQL服务器通过Internet可以使用IP地址访问。ASP.NET [Win32Exception(0x80004005):访问被拒绝]错误
但是,当我在myasp.net托管服务提供商发布我的ASP.Net网站,并且我得到的登录屏幕很好地工作。但问题是,当我点击登录按钮时,我得到了在VS中测试时发生的以下错误。
Server Error in '/' Application. Access is denied Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ComponentModel.Win32Exception: Access is denied
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[Win32Exception (0x80004005): Access is denied]
[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - Access is denied.)]
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) +1005
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +799
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +38
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +726
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +85
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +449
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +108
1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +942
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) +143
1 retry, DbConnectionOptions userOptions) +17
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry) +139
1 retry) +367 System.Data.SqlClient.SqlConnection.Open() +129
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
UserLogin_VB.Login.ValidateUser(Object sender, EventArgs e) +220
System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +109 System.Web.UI.WebControls.Login.AttemptLogin() +119
System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +75 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +120
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +31 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3450
Asken Quote:
I don't think your provider will allow you to access a private sql like that. If that's the case you'll need to use a sql that is hosted and supported by your asp.net provider.
@Asken 你说的没错...我收到了myasp.net客户支持的以下回复。
Dear Customer,
Sorry, for performance reasons, we don't allow our customer to connect to remote database server. We suggest you simply make a backup of your database and restore it to our server to test your application. You’ll see a much faster performance and reliability using this method.
However, if you must connect to a remote database server, please consider upgrading to our Premium Plan or Semi Dedi Plan. Once you upgrade to these hosting plans, you can enable any ports your want in your Control Panel -> Security Manager -> Outgoing Port Manager.
And don't worry, we provide a 60 days FULL Money Back for all of our plans.
Thank you.
检查您的连接字符串,如果其正确,那么它必须是防火墙问题。 –
我不认为你的提供者会允许你访问这样的私人SQL。如果是这种情况,您需要使用由您的asp.net提供程序托管和支持的sql。 – Asken
@Dr。针4,SQL连接部分和防火墙是完美的,因为我的基于Windows的EXE的工作正常,以相同的连接字符串在不同的位置通过连接sql服务器的IP地址。还有其他建议吗? – Sixthsense