【问题标题】:ASP.NET web service does not connect with database in IIS7ASP.NET Web 服务无法与 IIS7 中的数据库连接
【发布时间】:2013-08-09 03:48:44
【问题描述】:

当我尝试在 IIS7 上发布我的 asp.net Web 服务应用程序时,我的应用程序在使用 Visual Studio 进行调试时运行良好。但是,当我尝试通过在浏览器上输入来从 IIS 访问我的网络服务时:http://localhost:port/Service1.asmx 并单击该方法,然后单击“调用”,它给了我这个错误:

System.Data.SqlClient.SqlException: The SELECT permission was denied on the object 'Marimi', database 'eMagazin', schema 'dbo'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader()
   at WebService.Service1.GetMarime() in C:\Users\Eduard\Desktop\MaG_beta01\MaG\WebService\Service1.asmx.cs:line 741

我在 web.Config 中与数据库的连接是:

<connectionStrings>
    <add name="connection" connectionString="Data Source=EDUARD-PC\EDD;Initial Catalog=eMag; Integrated Security=True;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

我使用 ASP.NET v4.0 Classic 作为应用程序池

我在谷歌上搜索过解决方案,但没有发现任何有用的东西...... 提前谢谢大家...

【问题讨论】:

    标签: asp.net database service iis-7 connection-string


    【解决方案1】:

    应用程序池标识对您的数据库没有权限:要么不使用集成安全性,要么为具有数据库权限的应用程序池创建一个专用用户。

    【讨论】:

    • 老兄...我爱你...我创建了一个新用户,而不是像你说的那样使用集成安全性--> User ID=myUser;密码=我的密码; ...部署在 iis 上刷新 id 它可以正常工作...非常感谢
    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 2012-08-04
    相关资源
    最近更新 更多