2015-01-31 7 views
5

Bir makinede garip davranışların alt kısmına ulaşmaya çalışıyorum. Etkileyici bir şekilde çalışacak bir önemsiz konsol uygulaması var, ancak bunu WMI yoluyla başlattığımda hemen başlayacak ve çıkacak.Fusion Log Assembly Binder Hatası - Bind sonucu: hr = 0x1. Yanlış işlev

Procmon'un bozulmadığı için Fusion günlüğünü etkinleştirdim. Ben aşağıdaki hatayı görüyorum:

*** Assembly Binder Log Entry (31-01-2015 @ 19:22:51) *** 

The operation was successful. 
Bind result: hr = 0x1. Incorrect function. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\CMCBOOTSTRAP\Cmc.Installer.Agent.Console.exe 
--- A detailed error log follows. 

BEGIN : Native image bind. 
END : Incorrect function. (Exception from HRESULT: 0x00000001 (S_FALSE)) 

"Yanlış işlev" nedeni nedir? WMI aracılığıyla bu uygulamanın neden etkin bir şekilde başlatıldığını belirlemek için başka nelere bakabilirim?

class Program 
{ 
    static void Main(string[] args) 
    { 
     Thread.Sleep(30000); 
    } 
} 

Çevre

Ve önemsiz yani ... Windows Server 2012 R2 ve .NET 4.5 olduğunu.

+0

İşleminiz başladığında bir hata ayıklayıcısını başlatmak için Görüntü Dosyası Yürütme Seçenekleri'ni kullanmalısınız. Windbg ile hata ayıklama sunucusu olarak başlatabilirsiniz, böylece başka bir oturumdan bağlanabilirsiniz. Kurulumu çok kolay değil, ancak size doğrudan bilgiler sunacak. Başka bir seçenek uygulamanızı profillemek ve CPU'nun ETW ile nereye gideceğini kontrol etmektir. –

+0

Bu makineye yalnızca bir Terminal Server ağ geçidi üzerinden bağlanır ve makinenin internet erişimi yoktur, bu nedenle bir hata ayıklayıcıyı uzaktan bağlamak olası değildir. Profilerle ne önerdiğini bilmiyorum. Uygulama bir kod satırı olduğu için ne arardım? ETW Nedir? –

+0

İşleminizi ETW üzerinden başlattığınızda, genellikle bir hata ayıklayıcı kullanıcı arabiriminin masaüstü erişimi olmadığı ve hata ayıklayıcısını kullanamayacağınız oturum sıfırlanır. Ancak, Windbg'yi hata ayıklama sunucusu işlemleri olarak başlatabilir ve tcp veya adlandırılmış yöneltmelerle yerel olarak bağlayabilirsiniz, böylece neler olduğunu görebilirsiniz. ETW, Windows için Etkinlik İzleme'dir. Ör. PerfView. Yönetilen istisnalar gerçekleşirse, bunları kaynak verilerinde görürsünüz. İstisna yolları yavaş olma eğilimindedir, bu da neyin yanlış gittiğine dair bir fikir verebilir. –

cevap

12

Bu, Tamamen normal bir aksiliktir, Günlük Kategoriler ayarında "Yerel Görüntüler" radyo düğmesini seçerek Fuslogvw.exe aracından aldınız. Kendi makinemde kolayca yeniden üretilebilir, çoğunu görüyorum.

Gerçek hata kodu S_FALSE, "başarılı bir şekilde başarısız" anlamına gelen bir COM hata kodudur. Bu yüzden The operation was successful diyor. Tanılama iletisi için "İşlev başarısız" olarak yanlış yorumlanmış, Windows hata 1'in açıklamasıdır ve FormatMessage() winapi işlevi tarafından döndürülür.

Başarılı başarısızlık tamamen beklenir, konsol modu uygulamanızda Ngen.exe'yi çalıştırmadıysanız, bunun için yerel resim kullanılamaz. Bakmaya devam et, bu o değil. Günlük Kategorisini "Varsayılan" olarak değiştirin, yerel görüntüler sorun değil.

+0

Teşekkürler, ilk kareye dönüş. Bu uygulama neden başlıyor ve hemen sonra ölür. GFlag'ların başlangıçta bir hata ayıklayıcı ekleyemelerini bile alamıyorum. –

+6

Elbette makul bir tahminim yok. Makineyi 4. kattaki bir zemine sürükleyin ve bir pencereden dışarı çıkmasına izin verin. Pencereyi ilk açmak isteğe bağlıdır. –

+0

Ve tabi ki bu sadece BİR makinede gerçekleşir. –