我们在WCF服务上有一个插件系统,用于检查位于bin文件夹中的库是否存在某些装配级属性并加载它们。这允许基于哪个客户端正在进行呼叫来定制某些服务呼叫。这在大多数情况下都很有效。但是,有时它似乎失去了dll,这导致服务恢复到每个客户端的默认实现。到目前为止,解决方案只是将dll文件移出bin文件夹,然后重新进入。这会导致asp.net拿起该文件,并且自定义设置再次开始工作。ASP.NET在bin目录中忘记dll
我不知道为什么在一段时间之后会议会这样错过。任何想法可能会导致这种情况?
编辑:问题说明更清楚
我们的服务使用服务工厂来伸手,基于什么客户端调用代码自定义实现。如果没有自定义实现,我们发布默认实现。我们使用GetAssemblies来检查装配了一个属性的程序集,该属性将它们指定为自定义实现并将它们与客户端关联起来。问题是GetAssemblies会停止返回客户端的自定义程序集,即使该库仍保留在bin文件夹中。将dll从bin中移出,并回到它将解决问题大约一个星期,直到它再次发生为止
*什么*不再使用自定义实现?你的代码?你的意思是GetAssemblies()调用不会返回你认为应该返回的程序集?这个问题没有很清楚的描述。 – Cheeso 2010-03-23 19:41:20
我们的服务使用服务工厂来根据客户端调用代码来发布自定义实现。如果没有自定义实现,我们发布默认实现。我们使用GetAssemblies来检查装配了一个属性的程序集,该属性将它们指定为自定义实现并将它们与客户端关联起来。问题是GetAssemblies会停止返回客户端的自定义程序集,即使该库仍保留在bin文件夹中。将dll从bin中移出,然后回到它将解决该问题约一周,直到它再次发生。 – 2010-03-23 21:13:50
您是否在事件日志中收到任何错误或警告消息?此外,该盒子上运行的任何防病毒软件? – SoftwareGeek 2010-03-25 02:27:34