找不到类型或命名空间名称'ProfileCommon'(在服务器中的编译器生成的代码中)

时间:2014-09-02 11:42:40

标签: asp.net asp.net-mvc asp.net-mvc-4 profile

我知道之前有人问过,但没有一个对我有用,而且我的情况有点不同。

我的MVC 4项目在本地运行但在服务器中无法运行此错误:

Compiler Error Message: CS0246: The type or namespace name 'ProfileCommon' could not be found (are you missing a using directive or an assembly reference?)

Source Error:


Line 194:        }
Line 195:        
Line 196:        protected ProfileCommon Profile {
Line 197:            get {
Line 198:                return ((ProfileCommon)(this.Context.Profile));

Source File: c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\e3c4a897\ff4f4317\App_Web_pageheader.ascx.cdcab7d2.rpk2croq.0.cs    Line: 196 

我编写了一个自定义ProfileProvider并将项目配置为使用它:

<profile enabled="true" defaultProvider="sql">
  <providers>
    <clear />
    <add name="sql" type="BusinessLogic.ProfileProvider" connectionStringName="c" applicationName="/" />
  </providers>
</profile>

我使用ProfileBase类来访问用户个人资料而不是ProfileCommon。上面的错误是在编译器生成的文件中。为什么asp.net会生成一个无法编译的代码?以及为什么它在当地工作?

我在本地安装了.Net Framework 4.5.1,但在服务器上安装了4.5。它与问题有关吗?

1 个答案:

答案 0 :(得分:8)

当我们从网站项目迁移到Web应用程序项目时,在我们的部署中发生了同样的事情(尽管WebForms带有WebAPI服务)。

我们的解决方案是从服务器上的已部署文件夹中删除PrecompiledApp.config,然后重新启动IIS。