2013-03-07 27 views
5

My quản lý ODP.net webapp làm việc tại địa phương nhưng khi triển khai nó đến một máy chủ, nó không thành công với các lỗi:Oracle Managed ODP.NET không thể tìm thấy tnsnames.ora

"TNS: listener hiện không biết dịch vụ được yêu cầu trong bộ mô tả kết nối "

Từ nhìn xung quanh, có vẻ như điều này là do nó không thể truy cập tệp tnsnames.ora.

Tôi đã thử những điều sau đây không có thành công:

  • Đặt một tập tin tnsnames.ora (một trong những cùng làm việc tại địa phương) vào một [oracle nhà] [sản phẩm] ... \ thư mục quản trị mạng \ .
  • Đặt cài đặt TNS_ADMIN trong phần web.config của Managed ODP trỏ đến biến môi trường.
  • Đặt cài đặt TNS_ADMIN trong phần Web.config được quản lý ODP trỏ trực tiếp vào tệp tnsnames.ora.

Trên máy chủ, cố gắng chạy lỗi sản lượng tnsping TNS-03502: Không tìm thấy thông báo 3502; Không có tệp tin cho sản phẩm = NETWORK, cơ sở = TNS

Tôi đang thiếu gì?

+0

Bạn có thể cho chúng tôi thấy phiên bản kiểm duyệt của chuỗi kết nối và tsnames.ora của bạn không? –

+0

dường như máy khách oracle của bạn bỏ qua máy chủ không được cài đặt đúng. nó có thể là vấn đề? – evgenyl

Trả lời

8

Hãy thử sử dụng một connection string mà không phụ thuộc vào tnsnames.ora, chẳng hạn như:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword; 
+0

Chúng tôi có một số máy chủ với nhiều khách hàng oracle cài đặt và câu trả lời này đã tiết kiệm cho chúng tôi thời gian lớn khi có 10g và 11g được cài đặt trên cùng một hộp. – marty

+0

Tuy nhiên, điều này không trả lời câu hỏi. –

6

Chỉ cần thêm đường dẫn TNS_ADMIN để web.config hoặc App.config và trỏ nó đến thư mục mà bạn có tệp tnsnames.ora sẽ hoạt động.

<oracle.manageddataaccess.client> 
    <version number="*"> 
     <settings> 
     <setting name="tns_admin" value="E:\oracle11\product\11.2.0\client_1\network\admin" /> 
     </settings> 
    </version> 
</oracle.manageddataaccess.client> 
+0

Thỉnh thoảng tôi phải sử dụng dấu gạch chéo chuyển tiếp trong cài đặt tns_admin. Gọi nó là mê tín dị đoan, nhưng dường như giúp giải quyết vấn đề của tôi. – matrixugly

0

Bài đăng cũ, nhưng tôi đã tìm kiếm một giải pháp tương tự.

Nó xảy ra với tôi rằng có vẻ như ODP.net không cho phép chỉ định đường dẫn tệp TNS, sau đó nếu bạn biết đường dẫn tệp, chỉ cần đọc tệp theo chương trình và đặt nội dung vào trường DataSource của ConnectionStringBuilder. Không lý tưởng, nhưng một cách giải quyết hợp lý.

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