Smu*_*202 11 vb.net wcf windows-services .net-4.0 access-denied
这是一个有点棘手的问题,所以请耐心等待......
我有一个简单的小方法:
Public Overloads Shared Function DoStuff(ByVal path As String) As Boolean
If Not IO.File.Exists(ipath) Then Throw New ArgumentException
Dim result As Boolean
Using fs As FileStream = New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)
' do stuff here, details are not important
fs.Close()
End Using
Return result
End Function
Run Code Online (Sandbox Code Playgroud)
我很欣赏该方法没有显示如何使用流,但细节是无关紧要的,我将在下面解释.
这种方法在类库中很贴心; 我们在各种其他项目中引用的助手.显然,在大多数情况下,代码应该在假设路径有效,可访问等方面看起来很好.
现在,问题.我有一个WCF服务库,它引用并使用Helper程序集中的上述方法.WCF服务库托管在Windows服务中,而Windows服务又驻留在我们的某个服务器上.WCF服务有一个操作,它接收文件的UNC路径,在正常流程中,调用Helper类中的上述方法.
我发送的路径是用于我们网络上的共享文件."使用fs As ..."行失败,但出现以下异常:
System.UnauthorizedAccessException:拒绝访问" 此处列出的文件路径" 路径.在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)at System.IO.FileStream.Init(String path,FileMode mode,FileAccess access,Int32 rights,Boolean useRights,FileShare share,Int32 bufferSize,FileOptions options,SECURITY_ATTRIBUTES secAttrs) System.IO.FileStream上的System.IO.FileStream..ctor(String path,FileMode mode,FileAccess访问,FileShare共享,Int32 bufferSize,FileOptions选项,String msgPath,Boolean bFromProxy)中的,String msgPath,Boolean bFromProxy,Boolean useLongPath) MyHelperAssemblyName.DoStuff(String filePath)中的 ..ctor(字符串路径,FileMode模式),其余异常是指向方法,程序集,wcf服务等的堆栈跟踪 "
现在,我尝试诊断问题的列表(包括愚蠢明显的步骤):
编辑2011-06-27 10:23GMT - 我觉得服务工作很烦恼,我拉开了WcfStorm,这是我周末跑的.从周五开始显示结果显示实时服务失败.我怨恨同样的要求 - > 它有效...我现在实际上更生气,因为我没有真正的方法来追踪这个问题
所以,该服务现在正常工作.任何人有什么想法会导致这种间歇性的失败?同事们向我保证,周末没有任何改变(至少不是手动).百思不得其解......