2010-07-15 11 views
6

Tôi cần thực hiện một số điều chỉnh hiệu suất và cần phải sửa đổi các cài đặt sau: processModel, httpRuntimeconnectionManagement. Đơn giản, tôi giả sử, nhưng tôi không chắc chắn của hai tập tin machine.config để chỉnh sửa, hoặc tôi chỉnh sửa cả hai?Tôi có hai tệp machine.config trên máy chủ của mình, tôi sẽ chỉnh sửa tệp nào và cách xác minh chúng đang được sử dụng?

  • \ Windows \ microsoft.net \ Khung \ v2.0.50727 \ CONFIG \ Machine.config
  • \ Windows \ microsoft.net \ Framework64 \ v2.0.50727 \ CONFIG \ Machine.config

Làm câu hỏi tiếp theo, làm cách nào để xác minh rằng cài đặt đã được áp dụng?

Tôi nên đề cập rằng máy chủ đang chạy Windows Server 2003 Enterprise (64-bit) với IIS 6.0 (64-bit) và MSSQL Server Enterprise 2005 (64-bit).

Cảm ơn bạn đã trợ giúp trước!

Trả lời

11

Vị trí nằm trong Framework64 đang được sử dụng nếu ứng dụng .net/IIS của bạn đang chạy ở chế độ 64 bit. Người kia được sử dụng nếu chạy ở chế độ 32 bit.

Khi khởi động Trình quản lý tác vụ Windows, nếu có "* 32" được thêm vào tên quá trình, thì nó sẽ chạy trong 32 bit. Nếu nó không chạy dưới 64 bit.

Nếu hệ điều hành của bạn là 64bit, nghĩa là tôi cho rằng bạn có cả hai thư mục trên máy của mình.

Nếu bạn đang sử dụng IIS6/7, quá trình này được đặt tên là w3wp.exe.

IIS7 có nhiều cài đặt hơn cho điều này cũng có thể đọc được at this blog post.

+0

Nhìn vào Trình quản lý tác vụ ngay bây giờ, tôi thấy "w3wp.exe". Vì vậy, điều đó có nghĩa là tôi đang chạy IIS 7.0 và không 6.0 như tôi đã nghĩ? Tôi cũng thấy "sqlservr.exe". Cả hai quy trình đều không có hậu tố "* 32". Tuy nhiên, tôi thấy các procs khác có hậu tố "* 32" (ví dụ: "sqlbrowser.exe * 32", "SqlWb.exe * 32"). Bất kỳ ý tưởng đó có nghĩa là gì? – John

+0

Nhân tiện, tôi đã sử dụng bài viết này để xác định phiên bản IIS nào được cài đặt theo mặc định với Windows Server 2003: http://support.microsoft.com/kb/224609 – John

+0

Cả IIS6 và 7 đều có tên là w3wp. Tôi đã chỉnh sửa câu trả lời này trong câu trả lời của mình.Và nếu w3wp bị thiếu * 32, chúng đang chạy trong 64 bit và bạn nên chỉnh sửa machine.config trong Framework64. –

3

Cá nhân tôi sẽ chỉnh sửa không, nhưng thay vào đó sửa đổi tệp web.config ở cấp trang web hoặc ứng dụng.

Bạn sẽ có thể sửa đổi các cài đặt httpRuntimeconnectionManagement theo cách này, nhưng không được sử dụng trong machine.config.

Tuy nhiên bạn may not need to modify processModel nếu bạn đang ở trên Windows Server 2003.

Như những người khác đã chỉ ra, nếu bạn muốn thay đổi Machine.config, IIS6 sẽ chạy ở chế độ 64-bit theo mặc định, vì vậy đó là các phiên bản chỉnh sửa. Nếu bạn cần phải chạy ở chế độ 32-bit (ví dụ bởi vì bạn cần phải sử dụng 32-bit DLL bản địa), bạn có thể cấu hình chế độ 32-bit như sau:

cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true" 

Xem this TechNet article để biết thêm.

+0

Cảm ơn lời khuyên Joe. Tôi sẽ sử dụng web.config cho tất cả các cài đặt ở trên. – John

+0

trừ khi bạn muốn cài đặt áp dụng cho toàn bộ máy chủ (cho tất cả các trang web). Sau đó Machine.config là vị trí thích hợp. –

+0

"trừ khi bạn muốn cài đặt áp dụng toàn bộ máy chủ (cho tất cả các trang web). Sau đó Machine.config là vị trí thích hợp." - Tôi vẫn cho rằng việc đặt nó trong web.config của mỗi trang web là tốt hơn. Sau đó, các trang web là khép kín, và bạn có thể di chuyển chúng đến một máy chủ khác nhau mà không tự hỏi tại sao họ đột nhiên ngừng làm việc. – Joe