处理服务此请求所需的配置文件期间发生错误
Posted
技术标签:
【中文标题】处理服务此请求所需的配置文件期间发生错误【英文标题】:An error occurred during the processing of a configuration file required to service this request 【发布时间】:2012-08-14 16:04:48 【问题描述】:这个错误发生在我身上,我找不到它的原因。唯一发生的更改是一些数据库架构更改,没有任何 webconfig 更改,而且我正在使用自定义角色提供程序,该提供程序在一段时间内没有更改。我收到以下错误页面:
“/”应用程序中的服务器错误。
配置错误
说明:处理此请求所需的配置文件时出错。请查看下面的具体错误详细信息并适当地修改您的配置文件。
解析器错误消息:调用目标抛出异常。
来源错误:
第 55 行: 第 56 行: 第 57 行: 第 58 行: 第 59 行:
源文件:...\web.config 行:57
版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.272
我在某处读到这可能是我的自定义角色提供者的构造函数问题,但到目前为止我无法修复它,所以对于任何想知道以下是构造函数的人:
private IProviderRepository _providerRepository;
public CustomRoleProvider() : this(new ProviderRepository())
public CustomRoleProvider(IProviderRepository providerRepository)
_providerRepository = providerRepository;
【问题讨论】:
有内部异常吗?ProviderRepository
的构造函数会不会抛出异常?
我里面没有构造函数,下面是类签名: public interface IProviderRepository string[] GetUserRoles(string username); bool CheckLogin(字符串用户名,字符串密码); bool ChangePassword(字符串用户名,字符串密码);用户 GetUser(字符串用户名); 内部类 ProviderRepository : IProviderRepository private readonly DatabaseDataContext _dc = new DatabaseDataContext();公共字符串[] GetUserRoles(字符串用户名) ...
这里:private readonly DatabaseDataContext _dc = new DatabaseDataContext();
- 我猜这会崩溃。这可能有很多原因。不知道DatabaseDataContext
是什么,但如果它是一些试图连接到您的数据库的 EF 东西,它可能会失败。可能的原因:数据库问题、连接字符串问题……那么是什么导致了 InnerException?
我最近更改了开发环境,我在新开发中使用了带有窗口身份验证的连接字符串,而 LINQ to SQL 的 datacontext 使用了带有 windows 身份验证的连接字符串,因为它是最后一个用于从数据库生成实体。所以,你是对的,我似乎在寻找其他地方。非常感谢:)
【参考方案1】:
似乎在 ProviderRepository
类中,您正在私有字段中实例化一个新的数据库上下文:
internal class ProviderRepository : IProviderRepository
private readonly DatabaseDataContext _dc = new DatabaseDataContext();
public string[] GetUserRoles(string username) ...
并且您在 web.config 中错误地为其定义了连接字符串。
【讨论】:
以上是关于处理服务此请求所需的配置文件期间发生错误的主要内容,如果未能解决你的问题,请参考以下文章