Rod*_*Rod 4 wcf visual-studio-2010 visual-studio-2008-sp1
一年多以前,我一直致力于使用VS 2008编写的WCF服务.它在Windows服务下运行,我也写过.从那时起它一直在那里运行.不幸的是,其他项目/优先事项已经出现,阻止我继续这个项目,直到现在.
现在我想回到它.但是,我试图找出是否可以使用VS 2010和.NET 4而不是.NET 3.5.我已经启动了命令提示符,运行SvcUtil,以获取wsdl信息,我将把它放入配置文件中,用于我正在尝试开始编写的新WPF应用程序.唯一的问题是,我一直收到错误,说我无法到达服务器等.
所以,我将.exe.config文件从服务器复制到我的机器,在那里我可以用SvcConfigEditor编辑它.我已经做了这些更改,把它放回到服务器上,并在尝试运行SvcUtil时出错,但比我更糟糕的是我没有看到我希望看到的.svclog文件.所以我进入了服务器的服务应用程序.我找到了一年前写的Windows服务; 看到它正在运行,并停止并再次启动它.
现在我有一个不同的问题.我的Windows服务启动,但随后立即停止.我收到此消息说该服务已启动然后停止,并说有时会发生不同类型的服务,如性能日志和警报服务.我检查了服务器上的事件日志,然后只有与此Windows服务相关的事情是它进入启动状态然后进入停止状态.
啊,在尝试启动它4次后,它最终在事件日志中给了我一个错误!(为什么不首先做到这一点?谁说试图一遍又一遍地做同样的事情,并期待不同的结果是疯狂的迹象,显然前3次它没有注册任何东西在事件日志中,但在第4次尝试它.)
这是错误:
事件类型:错误事件源:Service1事件类别:无事件ID:0日期:2011年5月4日时间:10:14:46 AM用户:N/A计算机:HELIOS描述:服务无法启动.System.TypeInitializationException:'System.ServiceModel.DiagnosticUtility'的类型初始值设定项引发了异常.---> System.Configuration.ConfigurationErrorsException:找不到类System.Diagnostics.XmlWriterTraceListener,System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089的类型.at System.Diagnostics.TraceUtils.GetRuntimeObject(String className,Type baseType,String initializeData)
这是SvcConfigEditor放入.config文件的新代码段:
<sharedListeners>
<add initializeData="C:\Program Files\ASIWindowsService\ASIWindowsService_tracelog.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
<add initializeData="C:\Program Files\ASIWindowsService\ASIWindowsService_messages.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
Run Code Online (Sandbox Code Playgroud)
这个问题在评论中得到了回答,但我在Visual Studio 2010中看到过一些可能导致类似情况的问题.
即使目标框架设置为WCF项目的版本3.x,使用2010 SvcConfigEditor将自动插入"System.Diagnostics.XmlWriterTraceListener,System,Version = 4.0.0.0 ...",尽管它应该插入"System". Diagnostics.XmlWriterTraceListener,系统,版本= 2.0.0.0 ..."部署改变的web.config时到IIS托管在应用程序池的服务这将咬你没有配置为使用.NET 4.0框架.修复只是将web.config编辑回"Version = 2.0.0.0".
| 归档时间: |
|
| 查看次数: |
6536 次 |
| 最近记录: |