我创建了一个WCF Web服务,在这个Web服务中我使用了EF 6(也试过了5个)。 该项目编译并在不同的服务器上运行(也是2012R2)。
在我的应用程序中,我将webservice设置为创建异步方法。
使用webservice时,我收到与配置文件相关的错误(我还没有更改此配置文件中的任何内容),但稍后我会转到配置文件。
当我设置一个示例程序并且只调用" HelloWorld"时,我得到你好。
因此,webservice本身就起作用了。
在服务器上,我创建了一个使用相同版本EF的测试程序。有用。所以没问题。
但是当我尝试将我的webservice与使用EF的方法一起使用时,并没有发生任何事情。 e.result是string.empty,也没有返回错误。
web.config文件中的错误如何?当我使用原始配置文件发布webservice时。尝试直接从服务器的浏览器打开Web服务时出现以下错误:
错误500.19配置来源: 4:有关实体框架配置的更多信息,请访问http://go.microsoft.com/fwlink/?LinkID=237468 5:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections>
它显然抱怨名称section entityFramework。
当我将entityFramework更改为EntityFramework(使用大写E)时,我可以直接从我的服务器的浏览器打开webservice。现在我也可以在我的程序中实现它。
如上所述,HelloWorld工作正常,但在尝试通过此Web服务使用EntiTyFramework时仍然存在问题。
我在这台服务器上忘了一些设置吗?正如我在不同的服务器(使用原始配置文件)上测试它时所提到的那样?
我还在此服务器上设置了VS2015,甚至在此服务器上创建了新项目。它没有任何区别。
我希望有人可以告诉我该怎么做?
答案 0 :(得分:0)
我找到了实际问题并为我找到了解决方案。
在我安装此Web服务的服务器上,我将其安装在网站内的目录中,该网站本身也使用实体框架。
IIS从此webserice读取web.config,但在内部它从根目录添加到web.config(因此来自网站的web.config)。
IIS中用于网站的配置编辑器抱怨名为entityFramwork的第二个条目(只有当你将这些web.configs组合起来时才会得到这个。因为每个web.config只有一个条目:entityFramework)。 / p>
由于我在此服务器上有多个网站,因此我只是在不使用Entity Framwork的网站上安装了Web服务。 Eh Voila,我的问题已经结束了。
我希望其他人可以从中受益,我花了很多时间来解决这个问题。