2016-04-21 84 views
5

'da geçersiz dosya adı Crystal Report ile Visual Studio 2010 kullanıyorum. Yerel sunucumda çalışıyor ancak web sunucusunda hata veriyor: System.Runtime.InteropServices.COMException: Invalid file name. herhangi bir klasöre .rpt dosyayı koymak ve bu yolu sağlamak, Windows Temp klasörüne tam izin vermek, ebeveyn yolu şekli belirledikten gibi

Ben vs.

IIS birçok çözüm çalıştı Ama bunların hiçbiri çalışıyor. Lütfen bunu çözmek için bana yardım edin.

Bulunduğum yolu:System.Runtime.InteropServices.COMException: Crystal Report

crystalReport.Load(Server.MapPath("~/PurchaseOrder1.rpt")); 


Crystal Report error

+0

Server.MapPath ("~/PurchaseOrder1.rpt") ne döndürmektedir? Dosyaya doğru yer burası mı? Ayrıca NTFS aracılığıyla dosyaya IIS_IUSERS erişimi verdiniz mi? – JAZ

+0

@John, Server.MapPath doğru, Yerel sunucuda çalışıyor. IIS_IUSERS iznini kontrol edeyim. –

+0

IIS_IUSERS izni verdikten sonra bile aynı hata. –

cevap

2

değil bütün bir cevap ama SO sadece yorum yapmak için çok yeniyim. Denemeniz gereken bir şey, Process Monitor'u indirmektir ve Crystal'ın dosyayı yüklemeye çalıştığı ve yardımcı olabileceği yerleri görmektir. Process Monitor çok miktarda çıkış verecektir, ancak bu, dosya isminin bir kısmı üzerinde filtrelenebilir. Bir izin sorunu olup olmadığını size söyleyebilir. Bir dosyanın bulunmadığını anlayamayacağınız bu tür durumlar için çok yararlı buluyorum.

0

Tahminimce, suçlu Web sunucusu yolunda bir / izi olabilir.

deneyin Path.Combine(Server.MapPath("~"), "PurchaseOrder1.rpt");

kullanarak bu yoldaki uygun / koymalıyız ve sorununuzu çözebilir.

+0

Bu ve hala aynı hatayı denedim. –

0

Yerel ve sunucu ortamındaki ana farkın IIS root ve uygulamanızın bulunduğu sanal dizin olduğunu düşünüyorum. Dosya sitenin kök ise demek

, sen

crystalReport.Load(Server.MapPath("/PurchaseOrder1.rpt"));

kullanmak isteyebilirsiniz VEYA kodu değiştirmeden ViewPurchaseOrder.aspx ile aynı klasöre rpt dosyası koyarak deneyebilirsiniz

Çalışmıyorsa, yolları (hem fiziksel hem de sanal) paylaşabilirseniz daha fazla bilgi alabiliriz.

* Düzenleme: Sunucu kullanırken.MapPath

uygulamanın

/ döner sitenin kök

~/ döner kök dizin

farktır sitenizin olması durumunda:

http://yoursite.com Ve wwwroot\somedir\app

açıktır bir uygulama var

"Uygulamanızda" (http://yoursite.com/somedir/app)

/uygulama (http://yoursite.com/somedir/) kök dönmelidir sitesinde (http://yoursite.com)

~/kök dönmelidir