没有使用名称evanmoor_sales定义提供程序

时间:2009-05-04 16:36:13

标签: c# subsonic

尝试运行登录页面时出现此错误。这是我的堆栈跟踪:

[ArgumentException: No provider is defined with the name evanmoor_sales Parameter name: providerName] SubSonic.DataService.GetInstance(String providerName) in C:\svn\subsonicproject\trunk\SubSonic\DataProviders\DataService.cs:163 Emcom.Sales.SalesUser.GetTableSchema() in C:\work\2007.evan-moor.com\Sales.DataAccess.Generated\Generated\SalesUser.cs:123 Emcom.Sales.SalesUser.SetSQLProps() in C:\work\2007.evan-moor.com\Sales.DataAccess.Generated\Generated\SalesUser.cs:102 Emcom.Sales.SalesUser..ctor() in C:\work\2007.evan-moor.com\Sales.DataAccess.Generated\Generated\SalesUser.cs:73 salesreps_Login.SalesRepLogin(Object sender, EventArgs e) in c:\web\sites\dev.evan-moor.com\salesreps\salesreplogin.aspx.cs:25 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746

这是我的web.config文件的提供程序部分:

<SubSonicService defaultProvider="evanmoor_web">
    <providers>
        <clear/>
        <add name="evanmoor_web" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="evanmoor_web" generatedNamespace="Emcom"/>
  <add name="evanmoor_standards" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="evanmoor_standards" generatedNamespace="Ts"/>
  <add name="evanmoor_sales" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="evanmoor_sales" generatedNamespace="Emcom.Sales"/>
    </providers>
</SubSonicService>

有什么建议吗?我正在使用SubSonic 2.1.0,因此它应该是最新版本。

2 个答案:

答案 0 :(得分:0)

没关系,我意外地在DataAccess类的App.config中有空格。

答案 1 :(得分:0)

由于其他原因我也碰到了这个问题,并且需要进行一些搜索才能解决问题所以我认为我会分享我的解决方案。

我使用defaultprovider = provider1设置了我的web.config,然后需要将其更改为provider2。我在所有文件中替换了provider1的所有实例并运行了应用程序,但是遇到了这个错误,确实在详细说明了namespace1出现的错误信息,所以很明显找到&amp;在Visual Studio中替换是不够的。

最后,我不得不删除Studio在\ bin和\ obj \ debug文件中生成的myClass.xml文件。尽管清理和重建解决方案,这些都没有得到重建,他们仍然参考旧的设置。