2009-05-14 20 views
33

Dịch vụ web ASP.Net của tôi không thể chạy vì hồ bơi ứng dụng không thể khởi động do khủng hoảng danh tính đang gặp phải.Lỗi ASP.Net: "Danh tính của hồ bơi ứng dụng không hợp lệ"

Người dùng tôi đang sử dụng trong nhóm ứng dụng là người dùng miền, là quản trị cục bộ, trong IIS_WPG, tôi đã cấp cho nó "hoạt động như một phần của quyền OS" - không có gì. Nada. Không bắt đầu nhóm ứng dụng mỗi lần.

Thêm người dùng vào IIS_WPG thường là những gì bị thiếu, nhưng tôi đoán có điều gì đó khác.

Những điều tôi đã cố gắng:

  • Thêm người dùng IIS_WPG
  • Thêm người dùng vào nhóm quản trị cục bộ và thêm các "Hoạt động như một phần của os" ngay.
  • aspnet_regiis-ga
  • khởi động lại ...
  • Kiểm tra mật khẩu
  • tái tạo các hồ bơi ứng dụng và giao chỉ ứng dụng của tôi để nó

tái bút: Nếu tôi sử dụng người dùng Dịch vụ mạng, tất cả đều hoạt động - đó chỉ là người dùng "tùy chỉnh" của tôi không thành công. Đăng nhập (tương tác) với người dùng này hoạt động.

Edit:

Giải pháp là như mô tả trong the accepted answer (thêm "Đăng nhập như dịch vụ" quyền sử dụng danh tính các hồ bơi ứng dụng của).

tôi sẽ chỉ cần thêm, để tham khảo trong tương lai, đối với những gặp được thông báo sau khi cố gắng thêm "Đăng nhập vào như một dịch vụ" quyền cho một người dùng tên miền:

"This setting is not compatible with computers running Windows 2000 Service Pack 1 or earlier...."

Biết rằng này có không liên quan gì đến Windows 2000 và chính sách nhóm của miền đó không cho phép bạn gán quyền này cho người dùng.

+0

báo cáo nhật ký sự kiện chính xác là gì? – AviD

+1

Assaf - nếu bạn đang tạo tài khoản tùy chỉnh được sử dụng làm nhận dạng nhóm ứng dụng, bạn cần sử dụng aspnet_regiis -ga . – Kev

+0

Kev - Tôi đã thử và nó không giúp được –

Trả lời

45

Bạn đã bật "Đăng nhập dưới dạng dịch vụ" cho tài khoản chưa?

Start -> Control Panel -> Administrative Tools -> Local Security Policy -> Local Policies -> Chuyển nhượng quyền sử dụng -> Đăng nhập vào như một dịch vụ

(đảm bảo tài khoản của bạn là trong danh sách này trực tiếp hoặc gián tiếp ; nó cũng đã được gợi ý rằng bạn nên đặt: Truy cập máy tính này từ mạng; Từ chối đăng nhập cục bộ; Đăng nhập dưới dạng tác vụ theo lô)

Ngoài ra - hãy đảm bảo rằng tài khoản có "Đọc & Thực thi", " quyền truy cập "và" Đọc "vào hệ thống tệp làm nền tảng cho trang web/ứng dụng.

+0

Tôi đã thử đặt Nhật ký thành Dịch vụ nhưng tôi không thể. Snapin MMC nói: "cài đặt này không tương thích với máy tính chạy Windows 2000 Gói Dịch vụ 1 hoặc cũ hơn ...." Tất nhiên, tôi đang chạy XP64 với SP3. Điều này rất đáng ngờ. Có thể đó là thông báo lỗi sai do chính sách nhóm ngăn tôi thay đổi quyền này không? –

+0

Tôi chưa thấy thông báo đó; Tôi thành thật không biết. –

+0

http://community.spiceworks.com/topic/29356 –

0

Điều đang xảy ra là bạn có thể đang chạy ứng dụng của mình bên trong một hồ bơi đang chạy các ứng dụng bằng cách sử dụng phiên bản .NET framework khác. Đảm bảo rằng tất cả các ứng dụng của bạn bên trong hồ bơi đó đang chạy cùng một phiên bản. Nếu các ứng dụng đó phải chạy dưới một phiên bản khác với phiên bản này, hãy tạo một hồ bơi mới và thêm ứng dụng của bạn vào đó.

+0

ý tưởng hay. Tôi sẽ kiểm tra ... –

+0

Không, phải không. Và nó thực sự không thể là nguyên nhân bởi vì cảnh báo trong Event Log về vấn đề nhận dạng xảy ra trước khi tôi thậm chí cố gắng xem trang web (do đó tải DLL ..) –

0

Tôi biết điều này rất đơn giản, nhưng bạn đã kiểm tra mật khẩu có đúng không?

+2

có, và tôi đã thiết lập lại nó và thử lại. thậm chí đã thử chạy calc với runas với nó .. (mà hoạt động) –

21

Thử chạy lệnh sau đây trong thư mục C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727:

aspnet_regiis -ga <your_app_pool_user> 

Để biết thêm về cấu hình tài khoản người dùng để sử dụng như một định danh hồ bơi ứng dụng xem bài viết sau:

How To: Create a Service Account for an ASP.NET 2.0 Application (MSDN)

+0

dòng lệnh đã không giúp đỡ. –

+1

Nếu bạn đang tạo tài khoản tùy chỉnh để sử dụng làm nhận dạng nhóm ứng dụng, bạn nên luôn chạy lệnh đó. Nó thiết lập tất cả các nhiệm vụ quyền của người dùng chính xác, quyền đăng ký, NTFS perms, vv – Kev

+1

Điều này làm việc cho tôi. Có lẽ cần lưu ý để chạy nó ra khỏi thư mục phiên bản khung thích hợp mặc dù ... – CodeRedick

0

Có vấn đề này trước và không thể theo dõi lý do tôi thông cảm!Một số gợi ý có thể giúp:

  • Kiểm tra mật khẩu là chính xác (xin lỗi phải được nói)
  • Sử dụng một ứng dụng hồ bơi mới, trong đó có trang web khác đang chạy
  • Đảm bảo rằng bạn đã chạy aspnet_regiis-ga thiết lập các điều khoản cần thiết

Nếu vẫn thất bại: - Dừng ứng dụng và xóa các hồ bơi ứng dụng - xóa người dùng - Tái tạo người dùng - Run aspnet_regiis-ga - Thiết lập hồ bơi ứng dụng mới chạy dưới người dùng này - Chạy trang web trong hồ bơi này Điều đó cùng với việc sao chép và dán mật khẩu phức tạp mà tôi đang sử dụng đã làm việc cho tôi!

+1

Tôi đã thực hiện tất cả điều này ngoại trừ xóa người dùng (là người dùng miền và hoạt động tốt trên nhiều máy khác, vì vậy tôi sẽ không xóa nó). –

1

Đảm bảo có thư mục có tên là c: \ inetpub \ temp \ apppools. Nếu không, hãy tạo nó.

+0

Không có thư mục nào như vậy. Đã tạo một. Vẫn không hoạt động (danh tính không hợp lệ). Có thêm một bước nữa không? –

0

Bạn có chính sách nhóm nào đó ở đâu đó có nghĩa là kéo tài khoản ra khỏi nhóm iis_wpg? Chúng tôi có vấn đề này (hoặc tương tự) thường xuyên khi, vì bất kỳ lý do gì, quy trình công nhân hoặc dịch vụ cần phải chạy trong tài khoản tùy chỉnh.

+0

Không, tài khoản nằm trong WPG. –

1

Đảm bảo tài khoản người dùng đang cố gắng truy cập vào nhóm ứng dụng là thành viên của nhóm IIS_USRS trong AD.

0

Tài khoản người dùng của hồ bơi ứng dụng có thể bị khóa.

0

Một cách khác có thể xảy ra là nếu bạn có tập lệnh CGI. Theo mặc định, các script CGI chạy khi người dùng Windows truy cập vào trang web. Để chạy script CGI của bạn dưới một tài khoản cụ thể, tài khoản mà bạn cần thêm một bước:

IIS 7+

Đi tới phần CGI trong cấu hình trang web của bạn trong inetmgr.exe. Đặt mạo danh thành sai.

IIS 6

Chạy các lệnh như một quản trị viên:

cd \inetpub\adminscripts 
cscript.exe Adsutil.vbs SET W3Svc/CreateProcessAsUser false 

Bước tiếp theo: có bộ phận CNTT của bạn để nâng cấp tất cả các máy WS2003 của bạn ...

0

Sau khi làm theo tất cả những lời đề nghị khác:

  1. Kiểm tra "Đăng nhập vào như một dịch vụ" và "Đăng nhập như một công việc hàng loạt" quyền
  2. Kiểm tra thư mục cho phép, c: \ Windows \ system32 \ inetsrv vv
  3. Trong Metabase Explorer cho phép kiểm tra cho nhóm IIS_WPG

Hãy nhớ khởi động lại dịch vụ IIS quản trị!

0

Một điều nhỏ đáng nói đến có thể là, nếu đó là tài khoản người dùng mới được tạo bởi quản trị viên, chính sách mặc định có thể áp dụng như 'thay đổi mật khẩu của bạn lúc đăng nhập lần đầu'. Nếu đó là trường hợp và đăng nhập đó chưa xảy ra, điều này cũng sẽ ngăn chặn tài khoản người dùng chạy dịch vụ của bạn một cách hiệu quả.

Điều này không áp dụng cho trường hợp của OP vì anh ấy đề cập đến việc anh ấy có thể đăng nhập tương tác bằng tài khoản, nhưng tôi đã tham gia vào ngày hôm nay và ai đó cũng vậy.

0

Trong trường hợp của tôi, vấn đề là tôi đang cố gắng sử dụng tài khoản miền trong khi bộ điều khiển miền có vấn đề với máy của tôi. Tôi vừa mới tạo một máy ảo mới với một phiên bản Windows mới hơn (Windows 10) và đã yêu cầu quản trị viên tên miền thêm nó vào miền, nhưng tôi đã giữ cùng một tên máy chủ như trên máy khác của tôi.

Ngoài ra, trong Trình xem sự kiện, tôi tìm thấy các thông báo lỗi liên quan đến bộ điều khiển miền và điều đó đã cho tôi một đầu mối.

Tôi phải xóa máy khỏi miền và thêm lại máy và sự cố đã được giải quyết.

0

Đăng câu trả lời đơn giản để hoàn thành vì tôi đã nhận được lỗi tương tự nhưng những gì đã sửa cho tôi là đưa tên miền vào tên người dùng khi thiết lập danh tính. Người dùng là người dùng miền hợp lệ và người dùng cho máy chủ và tôi đã thêm nó vào nhóm IIS_ theo cách thủ công nhưng không có con xúc xắc cho đến khi tôi thử thêm miền làm tiền tố, ví dụ: "us \ svc-myAccount".

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