2012-02-10 27 views
5

Tôi có một ứng dụng asp.net yêu cầu chỉnh sửa tệp machine.config để hoạt động bình thường. Trên máy phát triển của tôi (chạy windows xp), tôi đã chỉnh sửa tệp machine.config tại vị trí: "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727"Tệp machine.config nào là giải pháp của tôi khi sử dụng trên máy chủ?

Đây là dòng mã tôi đã sửa đổi, với các sửa đổi (thêm người dùng/pass):

<processModel autoConfig="true" userName="SYSTEM" password="AutoGenerate"> 

Trên máy chủ (chạy máy chủ Windows 2003) Tôi đã thực hiện cùng một thay đổi cho cùng một tệp tại cùng một vị trí. Tuy nhiên, khi tôi gỡ lỗi giải pháp, nó không hoạt động đúng (không có gì xảy ra và nó hết thời gian, cùng một vấn đề tôi có trên máy phát triển của mình trước khi thực hiện những thay đổi này đối với tệp cấu hình).

Tôi đã đi đến thực tế là ứng dụng của tôi không sử dụng tệp machine.config tại cùng một vị trí trên cả máy và máy chủ của tôi. Để xác nhận điều này, tôi đã thêm các số ngẫu nhiên vào cuối tên người dùng và mật khẩu trong cả hai tệp cấu hình. Trên máy của tôi, ứng dụng thậm chí không chạy sau khi tôi làm điều này. Trên máy chủ, nó chạy và errs ra cùng một cách trước khi các số ngẫu nhiên được thêm vào.

Câu hỏi của tôi, trong ngắn hạn, làm cách nào để tôi tìm ra tệp machine.config nào thực sự đang sử dụng và/hoặc làm cách nào để tôi có thể đặt máy chủ ở vị trí được đề cập?

Trả lời

12

Có thể là máy chủ của bạn là một máy chủ 64-bit, có nghĩa là nó sẽ được ở:

C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727

Các Thời gian chạy 64 bit sử dụng một machine.config khác. Các quy tắc cơ bản là thế này:

  1. ASP.NET 1.x sử dụng %WINDIR%\Microsoft.NET\Framework\v1.1.4322
  2. ASP.NET 2.0/3.5 x86 sử dụng %WINDIR%\Microsoft.NET\Framework\v2.0.50727
  3. ASP.NET 2.0/3.5 x64 sử dụng %WINDIR%\Microsoft.NET\Framework64\v2.0.50727
  4. ASP.NET 4.0/4.5.x x86 sử dụng %WINDIR%\Microsoft.NET\Framework\v4.0.30319
  5. ASP.NET 4.0/4.5.x x64 sử dụng %WINDIR%\Microsoft.NET\Framework64\v4.0.30319
  6. Đối với ASP.NET 5.0 sử dụng CLR đầy đủ, điều này sẽ giống như ASP.NET 4.0 vị trí từ t .NET Framework 4.6 là bản thay thế cho 4.5. Nếu ASP.NET 5.0 đang chạy trên CoreCLR, không có khái niệm về tệp machine.config.

Phiên bản nào của ASP.NET bạn sử dụng phụ thuộc vào ASP.NET Tab của bạn (IIS 6) hoặc AppPool (IIS 7+)

x64 vs x86 phụ thuộc vào thiết lập W3SVC/AppPools/Enable32BitAppOnWin64 cho IIS 6 siêu dữ liệu, hoặc AppPool trong IIS 7.

+0

Cả hai máy đều là 32 bit, tôi vừa xác nhận điều này. 1 cho một cái gì đó tôi đã không được coi là mặc dù – turbo

+6

@turbo Tôi giả sử bạn có thể sử dụng mã 'ConfigurationManager.OpenMachineConfiguration(). FilePath' để tìm ra nơi nó đang tìm kiếm machine.config. Bạn sẽ cần tham khảo assembly 'System.Configuration'. – vcsjones

+0

Hm, nó hiển thị như cùng một vị trí trên cả hai máy. Tôi đoán phỏng đoán của tôi là sai. Có lẽ dự án của tôi là bằng cách nào đó không tham khảo các phiên bản cập nhật (Tôi biết bạn phải khởi động lại dịch vụ quản trị IIS, và tôi có). Bạn đã chứng minh giả thuyết của tôi sai, nhưng trả lời câu hỏi của tôi. Cảm ơn bạn đã giúp đỡ. – turbo

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