PRB: İstemci Uygulaması Bir Web Hizmeti Çağırdığında "System.IO.FileNotFoundException" Hatası Alıyorsunuz
Orijinal İngilizce makaleyi görüntüleyin: 823196
Hata #: 10193 (İçerik Bakımı)
Bir Microsoft ASP.NET Web uygulamasında bir Web hizmetini çağırdığınızda aşağıdaki hata iletisini alabilirsiniz:
Aşağıdaki koşullardan biri doğru olduğunda hata iletisini alabilirsiniz:
Alt işlemin işlem Temp Dizini okuma izni yok ve alt işlemin, işlemin Temp dizinine yazma izni yok.
Not: XmlSerializer sınıf oluşturur ve anında serileştirme ve serisini kaldırma gerçekleştirmek için kodu derler. XmlSerializer kodu belge nesne modeli (CodeDom) derleme gerçekleştirmek için kullanır. CodeDom derleme diskte geçici dosyaları kullanır. Ardından alt işlemin Temp dizini üzerinde Okuma izinleri ve Temp dizininde yazma izni yoksa, tüm Web hizmeti çağrıları başarısız. Bu nedenle, alt işlemin Temp dizini üzerinde Okuma izinleri ve Temp dizininde yazma izni gerektirir.
XmlSerializer tarafından oluşturulan kodda derleme hataları vardır.
Geçici Dizinde Alt İşlem Hesabı İzinleri
Bu sorunu gidermek için ASP.NET çalışan işlemi hesabının (ASPNET hesabı veya ŞEBEKE Servisi hesabı üzerinde Internet Information Services [IIS] 6. 0 uygulamanız dağıttıysanız) okuma erişimine ve yazma erişimine Temp dizininde olması gerekir.
Not: Kimliğe bürünme özelliğini kullanırsanız, Kimliğine bürünülen kullanıcı Temp dizininin tam erişimi olmalıdır.
Temp dizininde Çalışan işlem hesabına gerekli izinleri atamak için şu adımları izleyin:
Microsoft Windows Gezgini'nde %windir%\temp dizinini bulun.
%Windir%\Tempsağ tıklatın ve sonra tıklatın
Özellikler penceresinde tıklatın
SunucuAdı\ASPNET, sonra da Tamam' ı tıklatın.
Not: ServerName değerini Web sunucusunun adıyla değiştirin.
Uygulamanız IIS 6. 0'ı dağıttıysanız, ASPNET Ağ hizmeti ile değiştirin.
İzin veraltında seçmek için tıklatın
Tam Denetim onay kutusunu seçin ve ardından
XmlSerializer tarafından oluşturulan kod derleyici hataları bulma
Derleyici tarafından oluşturulan hataları bulmak için derleyici tarafından oluşturulan dosyaları korumak için Web.config dosyasına bir anahtarı eklemelisiniz. Bunu yapmak için şu adımları izleyin:
Web.config dosyasını Not Defteri gibi bir metin düzenleyicisinde açın.
XmlSerialization.Compilation anahtar kodu system.diagnostics bölümüne aşağıdaki gibi ekleyin:
İstemci uygulamasını çalıştırın.
Web servisi istemci uygulama çağırır.
_Tmpname.00.cs dosyasını ve _tmpname.out dosyasını %windir%\temp dizininde olduğunu doğrulayın.
_Tmpname.00.cs oluşturulan kaynak dosyasıdır. Derleyici hataları _tmpname.out dosyası olmalıdır.
Not: Okuma izinleri etkinleştir ve % tmpname % dosyaları Temp dizininde yazma yazma izinleri (ASPNET veya ağ hizmeti) alt işlem hesabını etkinleştirin.
Bir Web servisi yaratmak
Microsoft Visual C# .NET veya Microsoft Visual Basic .NET kullanarak yeni bir ASP.NET Web hizmeti projesi oluşturun.
Varsayılan olarak, Service1.asmx oluşturulur.
Çözüm Gezgini'nde, Service1.asmxsağ tıklatın ve Kod Görüntüle'yitıklatın.
Service1.asmx.cs dosyası (veya Visual Basic .NET kullanıyorsanız Service1.asmx.vb dosyasını), varsayılan açıklama karakterlerini kaldırın.
Bir istemci Web uygulaması oluşturma
Visual C# .NET veya Visual Basic .NET kullanarak yeni bir ASP.NET Web uygulaması oluşturun.
Başvurularve sonra da Add Web Reference' ı tıklatın.
Adres metin kutusuna WebServiceTempiçin aşağıdaki URL'yi yazın:
Git' i tıklatın ve sonra Add Reference' ı tıklatın.
WebForm1 açmak için çift tıklatın
Page_Load olay kodu.
Page_Loadolay işleyicisine aşağıdaki kodu ekleyin.
Visual C# .NET örnek kodu
Visual Basic .NET örnek kodu
Temp dizini üzerindeki izinleri ayarlama
Microsoft Windows Gezgini'nde, % windir % dizininde bulun.
İzin veraltında Yazma onay kutusunun seçili olmadığından emin olun ve sonra tıklatın
Web uygulamasını çalıştırın.
818364 Microsoft Visual Basic .NET kullanarak bir Windows uygulamasında bir Web hizmetine erişmek nasıl
.NET Framework'de XML seri hale getirme 314150 yol haritası
815169 ASP.NET sunucu uygulamaları izlemek nasıl
815153 ASP.NETapplications güvenlik için NTFS dosya izinlerini yapılandırma hakkında
Makale No: 823196 - Son İnceleme: 1 Nis 2017 - Düzeltme: 1