İnternette veya Kısıtlanmış bölgede olması veya dosyada web işareti bulunması nedeniyle dosya yeniden gönderimi işlenemedi


95

Visual studio 2017'de c # API Kodlamada hata ayıklarken bir sorunla karşılaşıyorum. Hata ayıklama başlamadı ve aşağıdaki gibi bir hata mesajı gösteriliyor:

görüntü açıklamasını buraya girin

Bu hata mesajı hakkında bir fikriniz var mı?


12
Windows Gezgini'nde dosyaya sağ tıklayıp Özellikler'i seçmeyi deneyin. Dosyanın kilidini açmak için iletişim kutusunun altında seçenekleriniz var mı?
Lasse

Harika Lasse, Şimdi Hata Ayıklama iyi çalışıyor Sayenizde.
Raju.Saravanan

5
"Ağın işareti" Canavarın Yeni İşareti mi?
Conrad

Yanıtlar:


154

Dosyayı internetten ayrı olarak veya bir .zip dosyası veya benzeri bir dosya içinde indirdiyseniz, internet bölgesinden geliyor olarak işaretlendiği için "kilitlenmiş" olabilir. Birçok program bunu içeriğe güvenilmemesi gerektiğinin bir işareti olarak kullanacaktır.

En basit çözüm, Windows Gezgini'nde dosyaya sağ tıklamak, Özellikler'i seçmek ve bu iletişim kutusunun altında bir "Engellemeyi Kaldır" seçeneğiniz olmalıdır. Değişikliği kabul etmek için Tamam'ı tıklamayı unutmayın.

Dosyayı bir arşivden aldıysanız, genellikle önce arşivin engellemesini kaldırmak daha iyidir, eğer dosya internet bölgesinden geliyormuş gibi işaretlenmişse ve onu açarsanız, bu bayrak az önce arşivden çıkardığınız dosyaların çoğuna yayılabilir. Önce engellemeyi kaldırırsanız, arşivlenmemiş dosyalar iyi durumda olacaktır.

Bunun için bir Powershell komutu da var, Unblock-File :

> Unblock-File *

Ek olarak, kilidi de kaldıracak kod yazmanın yolları vardır.

@ Defcon1 tarafından yapılan yorumlardan: Dosyanın bloklarını özyinelemeli olarak kaldıran bir ardışık düzen oluşturmak için Unblock-Fileile birleştirebilirsiniz Get-ChildItem. Yana Unblock-Fileart arda kendisine göre dosyaları bulmak için bir yol vardır, kullanmak zorunda Get-ChildItemo kısmını yapmak.

> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File

1
Ayrıntılı cevabınız için teşekkürler.
Raju.Saravanan

1
PowerShell referansı için teşekkürler - çok sayıda
dosyayla

Bu Powershell komutunu bulmam neden bu kadar zordu? Teşekkürler! 👍
Neville

Sorunum düzeltildi. Teşekkürler
Mohamed Uvais M

14
Unblock- ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
file'ı

65
  1. Dosya gezginini açın. Proje / çözüm dizinine gidin
  2. * .Resx araması yapın. -> resx dosyalarının listesini alacaksınız
  3. Resx dosyasına sağ tıklayın, özellikleri açın ve 'Engellemeyi Kaldır' seçeneğini işaretleyin.
  4. Her resx dosyası için # 3'ü tekrarlayın.
  5. Projeyi yeniden yükleyin.

10
unblockSeçenek yok .
dafie

1
Dosya bloksa, engellemeyi kaldırma seçeneği Genel sekmesinin altındaki Öznitelikler bölgesinde görünecektir. Blok değilse, seçenek görünmez.
2019

1
Benim için çalıştı! Mükemmel cevap!
Toby

4
Açık olmak gerekirse, bu görsel stüdyonun çözüm gezgininde değil dosya gezginde bulunur.
Ferus

Sorunun bu olduğunu teyit edebilirim. @ Dafie'nin yorumunu detaylandırmak için: Engellemeyi kaldır onay kutusu yoksa, dosyanın engeli zaten kaldırılmıştır. Soruna diğerlerinden biri neden oluyor. Onay kutusu oradaysa, işaretleyip "uygula" düğmesine basarsanız, onay kutusunun tamamen kaybolduğunu göreceksiniz.
Sander Koldenhof

24

Bu cevapların hiçbiri benim için işe yaramadı, aşağıdakileri yapmam gerekiyordu:

  1. Başlat Menüsü> 'İnternet Seçenekleri' yazın.
  2. Güvenlik sekmesinde Yerel intranet bölgesini seçin ve ardından Siteler düğmesini tıklayın
  3. Click Gelişmiş düğmesini
  4. File: // [bilgisayar adı] girin
  5. ' Sunucu doğrulaması gerektir ... ' seçeneğinin işaretlenmemiş olduğundan emin olun

Kaynak: https://superuser.com/q/44503


1
Ekleme file://domain.comişe yaradı, teşekkürler! bağlam: Büyük sunucu revizyonu dosyalarımızı DFS'ye taşıdı; Windows etki alanı, sorunu tetiklemiş olabilecek domain.comdosyalar artık bulunur \\domain.com\....
Kodithic

Bu çözümün .slnyerel bir ağda bir ağ içi paylaşım oluşturmak için sorunumu çözdüğünü onaylayabilirim . Hata mesajı şöyleydi:error MSB3821: Couldn't process file *.resx due to its being in the Internet or Restricted zone or having the mark of the web on the file. Remove the mark of the web if you want to process these files.
Mar Tin

Ayrıca bunun dışında hiçbir şeyin çalışmadığını da teyit edebilirim. .Sln'yi yüklediğim ağ paylaşımının IP'sinin yanı sıra file: // [bilgisayar adı] ekledim (örn. File: //10.0.0.0). Windows 7 Enterprise 64 bit w / Internet Explorer sürüm 11.0.9600.19236 ve Visual Studio 2019 Community Edition kullanıyorum. Windows'un yeniden başlatılması da gerekmez.
Marc

7

@ Lasse-v-karlsen cevabını tamamlıyor . Tüm dosyaların engelini özyinelemeli olarak kaldırmak için, powershell'den istediğiniz klasörün içinde yönetici olarak çalıştırın:

gci -recurse | Unblock-File

kaynak bağlantısı: İnternetten İndirilen Dosyaların Engeli Nasıl Kaldırılır? - Winhelponline
https://www.winhelponline.com/blog/bulk-unblock-files-downloaded-internet/


Bu işe yaradı ... her ne kadar orada saçma bir hal aldığını söyleyebilirim .... Çok kötü güvenlik o kadar çılgın ... İnternete hiç güvenemiyorum ...
CA Martin

5

Bu daha eski bir soru olmasına rağmen, proje boyunca alt klasörlerde bulunan birden çok dosyaya uygulandığında bu hatayı çözmenin bir yolunu bulmak için birkaç saat harcadım.

Bunu bir proje içindeki tüm dosyalar için düzeltmek için , Visual Studio -> Araçlar -> Seçenekler -> Güven Ayarları ve proje yolunu güvenilir bir yol olarak ekleyin.

Visual Studio güvenilir yolları


Benim için çalışan tek şey, diğerlerinin hiçbiri işe yaramadı.
2020

Bu, yolları işlemek için keyfi olarak PowerShell'i kullanmak yerine gitmenin yolu gibi görünüyor ...
CA Martin

5
  1. Hata günlüğünden yolu bulun ve dosyayı gezginde açın 2) dosyayı seçin ve sağ tıklayın -> özellikler
  2. Ardından 'engellemeyi kaldır' seçeneğini işaretleyin ve uygula'yı tıklayın görüntü açıklamasını buraya girin

3

Çözümümdeki resx dosyalarında bu sorunu yaşadım. Onedrive kullanıyorum. Ancak yukarıdaki çözümlerden hiçbiri sorunu çözmedi.

Sorun, kullandığım simgenin Windows için MyWindow.resx dosyalarındaydı.

Bunu kaldırdım, ardından simgeyi Uygulama Yerel Kaynakları kaynak klasöründen aldım.

 private ResourceManager rm = App_LocalResources.LocalResources.ResourceManager;
 
 ..
 
InitializeComponent();
this.Icon = (Icon)rm.GetObject("IconName");

Bu, VS2019 güncellemesinden sonra oldu.


2

OneDrive veya benzer bir ağ sürücüsü kullanıyorsanız, 2 seçeneğiniz vardır:

1) kolay olanı, klasörü bilgisayarınızın içindeki yerel bir dizine taşımaktır (örneğin :. C :).

2) ancak OneDrive'ı kullanmaya devam etmek istiyorsanız, onu internet gezgini seçeneklerindeki güvenilir sitelere eklemenizi öneririm ve bu sorunu çözecektir.

görüntü açıklamasını buraya girin


2

Çözüm: Dosyayı düzenleyin ve kaydedin!

VisualStudio'dan Görünüm'e gidin ve resx dosyasını görmek için genişletin

Sağ tıklama menüsünden OpenWith ... XML (Metin) Düzenleyicisi'ni seçin .

Sadece sonuna bir boşluk ekleyin ve kaydedin.


Ayrıca birçok başka yolu denedim ve başarısız oldum. Yakın zamanda ek bir kontrol olduğunu varsayıyorum
profimedica

1

Yukarıdakilerin hiçbiri işe yaramadı.

  • Gezgin özelliklerinde "Engellemeyi Kaldır" seçeneği mevcut değildir.
  • Dosyayı yeniden oluşturmak, Araçlar-> Seçenekler-> Güven Ayarları'na klasör (ve resx dosyası) eklemek çalışmıyor.

Çözüm, projeyi yerel olarak (ağ sürücüsünden) kopyalamaktı.


1

Benim gibi, yukarıdaki tüm çözümleri özenle uyguladıysanız ve hata hala devam ediyorsa, Visual Studio'yu kapatıp yeniden açmayı deneyin.

Açıkçası, biliyorum, ama belki de bütün gün bir bilgisayar ekranına baktıktan sonra bulanık beyinli olan tek kişi ben değilim.


1

Yukarıdakilerin hiçbiri benim için işe yaramadı.

Bu, bir winform üzerindeki araç şeridine yeni bir düğme ekledikten sonra başıma geldi. Düğme System.Drawing.Bitmap(görüntü özelliğinde) varsayılan görüntüsünü kullandığında bu hata benim için ortaya çıktı. Onu güvenilir bir görüntü olarak değiştirdikten sonra ('Kilidi Aç' seçeneği işaretlenmiş olarak kaynak dosyama eklendi) bu hata kendi kendine çözüldü.


0

Bu hatanın başka bir olası nedenine rastladım. Proje ağacınızda NTFS sembolik bağlantıları ve büyük olasılıkla yedeklenmiş sürücüler kullanıyorsanız, yerel sürücünüzü gösterseler bile bu hatayı alabilirsiniz. Bu durumda, .resx dosyalarına sembolik bağlantılar aracılığıyla erişildiğinde durumdan kaçınmaya çalışın.


Bu oydu. Nadiren kullandığım farklı bir depodan bazı kodlardaki bir referans yolu hatasını düzeltmek için bir sembolik bağlantı ekledim. Sembolik bağın kaldırılması ve bunun yerine csproj'un hacklenmesi sorunu çözdü.
Christian

0

Yukarıdaki önerilerin hiçbiri benim için işe yaramadı, bu yüzden biraz farklı bir adla yeni bir dosya oluşturdum ve sorun teşkil eden dosyanın içeriğini yeni dosyaya kopyaladım, sorun teşkil eden dosyayı yeniden adlandırdım ve yeni dosyayı sorun teşkil eden dosyanın adıyla yeniden adlandırdım. Bir cazibe gibi çalıştı. Sorun çözüldü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.