مشكلة إذن عند نشر WebService كدليل افتراضي. يعمل في VS IDE

StackOverflow https://stackoverflow.com/questions/2721163

سؤال

لدي خدمة ويب ASP.NET التي ستنشئ ملفًا نصيًا في مسار يتم تمريره كمعلمة إلى الطريقة.

 private void CreateFile(string path)
 {
        string strFileName = path;
        StreamWriter sw = new StreamWriter(strFileName, true);
        sw.WriteLine("");
        sw.Write("Created at " + DateTime.Now.ToString());
        sw.Close();
 }

الآن أقوم بتمرير مجلد في الشبكة كمعلمة وأدعو الطريقة

  CreateFile(@"\\192.168.0.40\\labels\\test.txt");

عند تشغيل الكود من Visual Studio IDE ، يتم إنشاء الملف في المسار. ولكن عندما نشرت هذا ونشرت كدليل افتراضي ، فإنه يرمي لي بعض الأخطاء مثل

   "System.UnauthorizedAccessException: Access to the path '\\192.168.0.40\labels\test.txt' is denied.
   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, Int32 bufferSize, FileOptions options)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
   at System.IO.StreamWriter..ctor(String path, Boolean append)

أملك <identity impersonate="true"/> في web.config. يعمل الجهاز الخاص بي في XP والآخر موجود في Windows Server 2003. لقد قمت بتعيين إذن الكتابة على "أي شخص" لهذا المجلد.

هل كانت مفيدة؟

المحلول

يعمل تطبيق الويب الخاص بك ضمن حساب مستخدم ASPNET المحلي ، والذي لا يمكنه الوصول إلى المورد على الشبكة. إذا كان لديك تجمعات تطبيقات في إصدار IIS الخاص بك ، فيجب عليك جعل مستخدم تجمع التطبيقات مستخدمًا لمجال يمكنه الوصول إلى مورد الشبكة. إذا لم يكن لديك تجمعات تطبيقات ، فإنك تقوم بتغيير المستخدم للويب في نموذج عملية عنصر web.config.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top