2015-01-31 23 views
5

Tôi đang cố gắng tìm hiểu đáy của một hành vi lạ trên một máy. Tôi có một ứng dụng giao diện điều khiển tầm thường sẽ chạy tương tác, nhưng khi tôi gọi nó qua WMI, nó sẽ bắt đầu và thoát ngay lập tức.Lỗi kết nối bản ghi nhật ký kết nối - Kết quả liên kết: hr = 0x1. Chức năng không chính xác

Tôi đã bật Nhật ký kết hợp, vì Procmon không được giải quyết. Tôi thấy lỗi sau:

*** 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)) 

Nguyên nhân của "hàm sai" là gì? Tôi có thể xem xét điều gì khác để xác định lý do tại sao ứng dụng này chết hiệu quả khi khởi động qua WMI?

Và tôi muốn nói tầm thường ...

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

Môi trường là Windows Server 2012 R2 và .NET 4.5.

+0

Bạn có thể sử dụng Tùy chọn thực thi tệp hình ảnh để bắt đầu trình gỡ lỗi khi quá trình của bạn bắt đầu. Với Windbg, bạn có thể khởi động nó như là máy chủ gỡ lỗi để bạn có thể kết nối với nó từ một phiên khác. Không dễ cài đặt nhưng nó sẽ cung cấp cho bạn thông tin chi tiết trực tiếp. Một tùy chọn khác là lập hồ sơ ứng dụng của bạn và kiểm tra xem CPU đang ở đâu với ETW. –

+0

Tôi chỉ có kết nối với máy này thông qua cổng vào của Máy chủ đầu cuối và máy không có quyền truy cập internet, do đó không thể kết nối trình gỡ lỗi từ xa. Tôi không chắc chắn những gì bạn đang đề xuất với profiler. Tôi sẽ tìm gì, vì ứng dụng là một dòng mã? ETW là gì? –

+0

Khi bạn bắt đầu quá trình của bạn thông qua ETW nó thường được bắt đầu theo phiên không có giao diện người dùng gỡ lỗi không có quyền truy cập máy tính để bàn và bạn không thể sử dụng trình gỡ lỗi. Nhưng bạn có thể bắt đầu Windbg như quá trình gỡ lỗi máy chủ và bạn có thể kết nối cục bộ qua tcp hoặc đặt tên đường ống cho nó để bạn có thể xem những gì đang xảy ra. ETW là Event Tracing cho Windows. Bạn có thể sử dụng ví dụ: PerfView. Nếu các ngoại lệ được quản lý xảy ra ở đó bạn sẽ thấy chúng trong dữ liệu cấu hình. Đường dẫn ngoại lệ có xu hướng chậm, điều này có thể cho bạn biết điều gì đã xảy ra. –

Trả lời

12

Đây là một rủi ro hoàn toàn bình thường, bạn nhận được nó từ Fuslogvw.exe bằng cách chọn nút radio "Hình ảnh gốc" trong cài đặt Danh mục nhật ký. Dễ dàng tái sản xuất trên máy tính của tôi là tốt, tôi thấy nhiều người trong số họ.

Mã lỗi thực tế là S_FALSE, mã lỗi COM có nghĩa là "lỗi thành công". Đó là lý do tại sao nó nói The operation was successful. Đã giải thích sai cho thông báo chẩn đoán là "Chức năng không thành công", đó là mô tả cho lỗi Windows 1 và được trả về bởi hàm winapi FormatMessage().

Lỗi thành công hoàn toàn được mong đợi, bạn không chạy Ngen.exe trên ứng dụng chế độ bảng điều khiển của bạn, vì vậy hình ảnh gốc cho nó không khả dụng. Tiếp tục tìm kiếm, đây không phải là nó. Thay đổi Danh mục nhật ký trở về "Mặc định", hình ảnh gốc không phải là vấn đề của bạn.

+0

Cảm ơn, quay lại hình vuông. Không có ý tưởng tại sao ứng dụng này bắt đầu và sau đó chết ngay lập tức. Tôi thậm chí không thể nhận được GFlags để đính kèm một trình gỡ lỗi vào nó khi bắt đầu. –

+6

Tôi không có dự đoán hợp lý nào. Kéo máy đến tầng tầng 4 và để nó trượt ra ngoài cửa sổ. Mở cửa sổ đầu tiên là tùy chọn. –

+0

Và tất nhiên điều này chỉ xảy ra trên ONE máy. –

Các vấn đề liên quan