2009-09-21 98 views
1

我有一個C#.NET服務,它在Windows服務器上運行爲DOMAIN\username,它需要訪問網絡共享\\share\export docs$\.NET(2.0)服務無法看到網絡共享

如果我登錄到計算機(如DOMAIN\username),我可以看到該共享,我甚至已將其映射到X:並試圖使用該共享。我在app.config中設置路徑(並重新啓動服務),如果我在C:上使用路徑,它可以正常工作,但如果我嘗試使用\\share\export docs$\X:\,則無法看到我需要訪問的任何文件。

我已經嘗試運行服務,作爲本地用戶和DOMAIN\username

任何想法我可能是做錯了?

編輯:堆棧跟蹤從日誌:

Could not find a part of the path 'X:\200909\11324709\coo.pdf'. 
    at 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, String msgPath, Boolean bFromProxy) 
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 
    at System.Net.Mail.AttachmentBase.SetContentFromFile(String fileName, String mediaType) 

在System.Net.Mail.Attachment..ctor(字符串文件名)

+0

你有日誌嗎?當服務試圖訪問UNC時,你會得到什麼錯誤信息? – 2009-09-21 20:11:14

+0

檢查共享中文件的權限。用戶可以訪問共享但不訪問其文件。 – 2009-09-21 20:13:44

+1

您必須添加此份額才能訪問文件。在命令行中,使用Win32 API中的'net use','WNetAddConnection3'。 – 2009-09-21 20:17:20

回答

1

在.net映射的驅動器有點馬車。然而,這種情況在這裏出現很多問題。你最好指定UNC路徑。

這不是你問的完全相同的問題,但這篇文章與你的問題有關,應該幫助你。

How do I access a file share programattically

+0

看起來很有希望,謝謝。應該可能搜索更難一點。 – rojoca 2009-09-21 20:26:30

+0

不要擔心搜索更難。我的意思是這是一個好主意,但不要因爲沒有找到它而自責。這個問題的措辭不同,所以很難找到。我碰巧看到了一個,它在我腦海中是新鮮的。 – David 2009-09-21 20:37:03

0

運行你的服務域\用戶名 「應該」 的工作。

您確定該帳戶具有「登錄爲服務」權限嗎?

+0

是的,它有登錄作爲服務的權利 – rojoca 2009-09-21 20:24:11