gpt4 book ai didi

c# - 如何在 IIS 中正确托管连接到 SQLServer 的 WCF 数据服务?为什么我会收到错误?

转载 作者:太空狗 更新时间:2023-10-29 20:15:12 25 4
gpt4 key购买 nike

我正在使用 WCF 数据服务(ADO.NET 数据服务)。我有一个指向 AdventureWorks 数据库的 Entity Framework 模型。

当我从 Visual Studio 中调试我的 svc 文件时,它工作得很好。我可以说/awservice.svc/Customers 并取回我期望的 ATOM 提要。

如果我将服务(托管在 ASP.NET Web 应用程序中)发布到 IIS7,相同的查询字符串将返回 500 错误。根 svc 页面本身按预期工作并成功返回 ATOM。/Customers 路径失败。

这是我的授权在 svc 文件中的样子:

public class AWService : DataService<AWEntities>
{
public static void InitializeService( DataServiceConfiguration config )
{
config.SetEntitySetAccessRule( "*", EntitySetRights.All );
config.SetServiceOperationAccessRule( "*", ServiceOperationRights.All );
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}

更新:我启用了详细错误并在 XML 消息中得到以下内容:

<innererror>
<message>The underlying provider failed on Open.</message>
<type>System.Data.EntityException</type>
<stacktrace>
at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(
...
...
<internalexception>
<message>
Login failed for user 'IIS APPPOOL\DefaultAppPool'.
</message>
<type>System.Data.SqlClient.SqlException</type>
<stacktrace>
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, ...

最佳答案

在我看来,这是一个 SQL 身份验证错误,IIS 在无权访问您的 SQL 服务器的用户下运行其 appPool,当您在 Visual Studio(本地)中崩溃时,它将是另一个用户。检查服务器上的 IIS 正在使用的用户,并确保它有权在 SQL 中执行您想要的操作。

关于c# - 如何在 IIS 中正确托管连接到 SQLServer 的 WCF 数据服务?为什么我会收到错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com