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.
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. –
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ì? –
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. –