“CS0103:当前上下文中不存在名称'model'”仅在SERVER

时间:2018-05-17 20:51:30

标签: c# asp.net-mvc iis oracle12c

概述

我正在尝试将现有的MVC 4 Web应用程序修补到MVC 5,并从Oracle DataAccess 11g修补到12c。它在Visual Studio中本地运行良好,没有错误,具有完整功能。但是,当我将它移动到开发服务器时,我收到以下错误:

Compiler Error Message: CS0103: The name 'model' does not exist in the current context 我查看了以下Stack Overflow帖子,并在那里尝试了修复而没有任何运气:

我认为他们并不真正适用于此,因为这些帖子中的错误发生在VS中,这对我来说很好。除非我找错了地方,否则我的问题似乎与开发服务器上的IIS设置有关。也就是说,如果你想让我发布web.config文件,我可以这样做。

应用

正如我上面所说,我尝试了我提供的两个链接中的所有修复,但无济于事。我的Web.config文件似乎都没问题;至少我能够在没有问题的情况下在本地运行。

我正在运行最新版本的MVC 5,Razor等: enter image description here

我还尝试为所有DLL设置Copy LocalTrue,这是一种盲目的做法并没有做任何事情。

发布网站时,我的目标是“任何CPU”,我不预先编译。我试着摆弄两种设置,但似乎并没有什么区别。

服务器资料

我的devops不愿意或无法帮助解决这个问题。当我去他们时,他们只是说“你想让我做什么,它是开发服务器。”服务器的东西不是我的强项,所以我处于“戳和祈祷”模式。

服务器正在运行带有所有最新修补程序的Windows Server 2008 R2。 当我查看控制面板的“已安装程序”部分时,它会显示.NET Framework 4.7.1

当我查看与应用程序关联的IIS应用程序池的基本设置时,它将.NET Framework版本显示为.NET Framework v4.0.30319,并将托管管道模式设置为integrated。有没有理由与4.7.1不同? IIS再次不是我的专业领域。

当我查看应用程序池的高级设置时,它将框架版本显示为4.0,并将“启用32位”显示为false。如果您还有其他想要了解的设置,请与我们联系。

服务器上安装了32位和64位版本的Oracle 12c。我和DBA验证了这一点。

这令人非常沮丧,因为它在本地似乎很好,我不知道在哪里可以看到服务器上有什么不同。我从我所在部门的服务器人那里得到零帮助。非常感谢来自这里的任何帮助。

更新 感谢您的评论,他们包含了很好的信息。我已经尝试确保web.config文件可用,它们是。我最后解决的问题是删除并重新创建IIS中的“站点”。我不知道为什么修复它。正如我在最初的评论中所说,我不是服务器人

2 个答案:

答案 0 :(得分:0)

将应用程序部署到服务器时,我遇到了同样的问题。在我的情况下,已发布应用程序的视图文件夹中缺少web.config文件,尽管实际项目中已经存在该文件。

将其添加到我的视图文件夹中后(右键单击->添加现有项),然后发布应用程序。它开始工作。

或者如果web.config文件不在view文件夹中,则可以使用相同的项目设置配置创建一个新项目,将其View的web.config文件复制到您的实际项目中,然后将其添加到您的项目中。

下面是我要查找并修复问题的步骤。 1)在您的主目录web.config文件中设置“ customError mode = on”。这将在屏幕上显示异常。或检查事件查看器以获取警告或异常的详细信息。

<system.web>
<customErrors mode="On" >       
        .....    
    </customErrors>
  </system.web>

2)在本地IIS上部署项目应用程序文件夹(项目主目录)。就我而言,它之所以起作用是因为视图能够找到其web.config。

3)发布您的应用程序并将其部署在本地IIS上。在这种情况下,应用程序无法正常工作,因为已发布的二进制文件删除了View的文件夹web.config文件。

也请检查this链接以查找您的错误。

对于Oracle dll,如果应用程序池为“ enable 32-bit = false”,则期望使用64位oracle.DataAccess.dll。在这种情况下,您只需要用bin文件夹中的64位oracle dll替换/复制当前的oracle dll。确保已安装oracle客户端或GAC中有适当的oracle dll。

答案 1 :(得分:0)

我遇到了同样的问题。 我通过执行以下步骤解决了这个问题。

  1. 检查服务器上的文件。就我而言,所有文件都在存储库中可用,但是服务器上缺少 web.config 文件。

  2. 我向服务器添加了 Web.config 文件,随后所有页面开始正常工作。