2014-04-29 12 views
6

Tôi đang tạo phiên bản thử nghiệm của một trang web sản xuất hiện có. Một ứng dụng dịch vụ web ảo tồn tại bên trong trang web - và hai cấu hình web có cùng một chuỗi kết nối."Mục nhập đã được thêm" - Hai Hồ bơi ứng dụng riêng biệt

Không có thẻ "rõ ràng" trong cấu hình web sản xuất và trang web và dịch vụ web cùng tồn tại một cách vui vẻ trên hai hồ bơi ứng dụng riêng biệt.

Tuy nhiên, trên trang web thử nghiệm, mỗi khi tôi duyệt đến URL webservice tôi nhận được Lỗi cấu hình "Mục nhập 'ConnectionString' đã được thêm."

Trang web thử nghiệm và ứng dụng ảo tương ứng sử dụng các hồ bơi ứng dụng riêng biệt của riêng chúng. Bất kỳ ý tưởng?

Cảm ơn Jim

Trả lời

12

Thừa kế Web.config xảy ra ngay cả giữa các nhóm ứng dụng khác nhau. Nếu bạn muốn dừng hành vi này, bạn nên thêm thuộc tính enableConfigurationOverride="false" vào appPool của bạn trong tệp applicationHost.config (nằm trong% WINDIR% \ System32 \ inetsrv \ Config và% WINDIR% \ SysWOW64 \ inetsrv \ config) như trong sau Ví dụ:

<add name="MyAppPool" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" enableConfigurationOverride="false"> 
    <processModel identityType="NetworkService" /> 
</add> 

Matteo

+1

Điều này không hoạt động đối với tôi trên IIS7.5 (Tôi giả sử tôi nên thêm thuộc tính này vào AppPool của ứng dụng trẻ em) – HaBo

+0

Tôi không nhớ và hiện tại tôi không có môi trường đó nữa, dù sao tôi cũng thử thêm nó vào appPool của cha mẹ (hoặc cả hai) –

+0

Làm việc tốt cho tôi, được thêm vào nhóm ứng dụng con. Cảm ơn! – RobSiklos

1

Tôi nghĩ vấn đề có liên quan rằng họ là một trong những trang web bên trong khác. Giống như một trang web với một thư mục ảo bên trong.

Trong trường hợp này ... Directory web.config ảo được "kế thừa" web.config mẹ

đây bạn có thể xem chi tiết về làm thế nào để giải quyết này: How to stop inheritance of <configSections>in Web.Config

tùy chọn khác: https://stackoverflow.com/a/367372/7720

Nếu sự cố nằm trong các phần khác của web.config (không phải trong các phần), bạn chỉ có thể quấn phần xung đột với <location path="." inheritInChildApplications="false">.

Tùy chọn khác có thể cho phép webservice lấy kết nối từ trang web.

+0

Cảm ơn - nhưng điều này không áp dụng nếu ứng dụng ảo đang chạy trong một hồ bơi ứng dụng khác nhau? (Cấu hình ở cấp độ thư mục của IIS) – Spodgy

+0

Không thực sự chắc chắn ... Trong trường hợp của tôi, tôi nghĩ rằng tôi có hồ bơi ứng dụng khác nhau trong cha mẹ và con, nhưng vì nó được chia sẻ lưu trữ không dễ dàng để biết. – Romias

+0

OK .. Cảm ơn. Tôi đã chọn thay đổi chuỗi kết nối. – Spodgy

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