2009-04-13 11 views
5

Tôi gặp vấn đề duy nhất trên một máy tính trong công ty (phải là của sếp của tôi). Tôi đã có một chương trình từ Borland C++ sử dụng một TSQLConnection. Nó kết nối với một máy chủ Firebird địa phương 2.1.1.17910 chạy như một ứng dụng. Các máy tính khác hoạt động tốt."Không thể hoàn thành yêu cầu mạng" hoặc "kết nối bị từ chối" đối với Firebird, chỉ trên một máy

Nó sẽ hoàn toàn không kết nối trên máy chủ cục bộ này (01 máy chủ cục bộ) cho mọi thứ. Tôi nhớ anh ấy luôn gặp rắc rối với InterBase khi nó được cài đặt. Tôi nghĩ rằng anh ta đã cài đặt lên đến 7,5 có thể. Nó đã biến mất ngay bây giờ và tôi đã đi qua và tiêu diệt bất kỳ cũ GDS32.dll tập tin và cập nhật chúng với những cái Firebird, và kết nối được sử dụng fbclient.dll anyways ...

tôi đã cố gắng gỡ bỏ cài đặt và cài đặt lại FB và chạy nó như một dịch vụ. Không làm việc.

tôi đã đi vào etc/dịch vụ và thêm vào dòng này:

gds_db   3050/tcp       #Firebird 

Không xúc xắc.

Bám "localhost:" ở phía trước của vị trí cơ sở dữ liệu được lỗi này

Không thể hoàn thành yêu cầu mạng để lưu trữ "localhost". Không thể thiết lập kết nối.

Tôi đã kiểm tra netstat, nó lắng nghe trên cổng 127.0.0.1 3050 ...

Cố gắng gắn bó "127.0.0.1:" trước khi vị trí cơ sở dữ liệu, tôi nhận được:

kết nối bị từ chối bởi giao diện từ xa

Đã cố gắng lấy 127.0.0.1 hoặc localhost ra hoàn toàn và chỉ sử dụng vị trí cơ sở dữ liệu, đúng vị trí, tôi nhận được

Cơ sở dữ liệu không có sẵn.

chính xác cùng một đĩa CD hoạt động tốt trên các máy khác. Tôi đã cố gắng gắn bó "localhost", "127.0.0.1", và không có gì ở phía trước của vị trí cơ sở dữ liệu và tất cả kết nối tốt trên các máy khác.

Tôi đã khiến anh ta tắt tường lửa của mình, vẫn không có súc sắc ... Vấn đề này đã diễn ra trong một thời gian dài và tôi đang ở cuối sợi dây. Tôi đã thử mọi thứ tôi có thể nghĩ đến. Nó hoạt động tốt trên máy tính của tôi, máy tính thử nghiệm trống, cho người thử nghiệm beta ... tất cả mọi người ngoại trừ ông chủ của tôi. Mọi trợ giúp sẽ là được đánh giá cao là.

Trả lời

5

Tôi đã gặp sự cố "chính xác" cùng ngày hôm nay 5/11-2011 và đã hoạt động khá chính xác về vấn đề này. Tìm kiếm internet để biết các gợi ý và mẹo. Tôi đã thử gỡ cài đặt Firebird 2. Tôi đã cài đặt lại nó. Lỗi tương tự vẫn tồn tại khi tôi thử sử dụng cơ sở dữ liệu thông qua Delphi. Tôi đổi tên GDS32.DLL trong thư mục system32 và sao chép nó từ một máy tính khác, nơi mọi thứ đều hoạt động tốt. Vẫn còn vấn đề tương tự. Luôn từ chối kết nối với cơ sở dữ liệu vì một số lý do.

Tôi đã kiểm tra logfile của Firebird và .. có. nó luôn luôn từ chối, nhưng khi tôi sử dụng IB-Console, tôi có thể tạo một cơ sở dữ liệu mới hoặc làm việc với cơ sở dữ liệu hiện có.

Tôi quyết định thực hiện một lần cuối cùng và gỡ cài đặt lại Firebird. Sau đó tôi đã xóa phần còn lại của tiến trình cài đặt trong programfiles \ firebird. Tôi đã thực hiện kiểm tra đăng ký hoàn chỉnh với trình dọn dẹp registry miễn phí AML. (Tôi nghĩ rằng những người tốt nhất sẽ làm)

Kết quả cho thấy khoảng 1500 mục mà không hợp lệ và tôi chỉ quyết định "Fix All"

Khi kết thúc, tôi cài đặt lại Firebird 2. Cài đặt nó như là một máy chủ.

Thì đấy.

Tôi hiện có thể sử dụng IBqueries và Cơ sở dữ liệu SQL với Firebird trong quá trình phát triển phần mềm của mình một lần nữa. Đoán tốt nhất của tôi là đã xảy ra sự cố với Windows Registry, mặc dù tôi không thể xác định được điều này.

Chúc bạn may mắn và kính thư. Morten, Na Uy, một buổi tối thứ bảy rất muộn.

+0

Cảm ơn bạn Morten! Tôi đã từ bỏ vấn đề này! Sau khi nhìn vào sổ đăng ký cho máy tính cứng đầu, có rất nhiều phím reg bị lỗi. Hy vọng rằng điều này sẽ giúp người khác. – Cyprus106

8

Tôi đã viết "Hướng dẫn hoạt động InterBase" vào năm 1998 khi tôi làm việc cho Borland. Tôi đã cố khắc phục sự cố cho các lỗi liên quan đến kết nối phổ biến.

  • kết nối từ chối là khi ứng dụng khách hàng không thể hoàn thành một kết nối mạng đến máy chủ IB/FB ở tất cả. Nếu tường lửa chặn các kết nối, đây là lỗi bạn nhận được.

  • Kết nối bị từ chối là khi kết nối mạng đến máy chủ cơ sở dữ liệu, nhưng máy chủ cơ sở dữ liệu đã quyết định chấm dứt yêu cầu kết nối. Lý do cho việc này bao gồm:

    • Bạn đã nhập sai đường dẫn đến cơ sở dữ liệu.
    • Bạn đã chỉ định tên người dùng hoặc mật khẩu không chính xác (nghĩa là chúng không khớp với các mục nhập trong isc4.gdb).
    • Thư mục cơ sở dữ liệu nằm trên hệ thống tệp được nối mạng. Nó phải được trên một hệ thống tập tin đó là thể chất địa phương cho máy tính xách tay.
    • Quy trình máy chủ cơ sở dữ liệu không có quyền cấp hệ thống tệp để đọc & ghi các tệp cơ sở dữ liệu (bao gồm isc4.gdb). Có thể có phần mềm diệt vi-rút hoặc các I/O chặn bảo mật hệ thống tệp khác cho các quy trình trái phép không?
1

Như Bill chĩa "bị từ chối bởi giao diện từ xa" thông điệp có nghĩa là kết nối TCP được thành lập một cách chính xác, nhưng máy chủ Firebird bản thân từ chối kết nối.
Kiểm tra tệp firebird.log trong thư mục máy chủ firebird \ bin.
Nó có thể có thông tin hữu ích về lý do máy chủ từ chối kết nối.

3

Đối với những người có vấn đề không vui. Một vấn đề phổ biến trên hệ điều hành 64-bit: bản sao xấu của GDS32.DLL và FBCLIENT.DLL nằm trong thư mục C:\Windows\SysWOW64. Gỡ cài đặt FireBird, xóa tất cả các bản sao của thư viện được đề cập khỏi cả hai C:\Windows\System32C:\Windows\SysWOW64 rồi cài đặt lại FireBird. Nó sẽ tạo ra các bản sao mới và hợp lệ của các thư viện này cho cả ứng dụng 64bit và 32bit.

1

Tôi đã giải quyết xóa gds32.dll tệp nằm trong cùng thư mục của .exe. Tôi đoán bằng cách này programm sử dụng DLL được cài đặt ở một nơi khác trong hệ thống, mà có lẽ là tương thích hơn.

1

Trong trường hợp cá nhân của tôi, tôi đã giải quyết được sự cố bằng cách sao lưu/khôi phục cơ sở dữ liệu được nhắm mục tiêu.

+1

vui lòng cung cấp thêm chi tiết hoặc mẫu mã – Tala

1

Tôi gặp sự cố này trên Máy ảo XP. Tôi chỉ đơn giản là tắt Firebird, rồi tắt máy và khởi động lại máy ảo XP. Bắt đầu Firebird sao lưu và vấn đề đã biến mất.

2

Tôi vừa làm việc thông qua một vấn đề tương tự với ứng dụng khách D7 Interbase cũ được kết nối với Firebird 1.5.x trên máy chủ Linux từ xa. Để có được những điều làm việc, tôi đã di chuyển XP Interbase cấu trúc thư mục khách hàng để một máy trạm x64 Win7, và đã viết một entry registry tương tự như sau:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Borland\InterBase\CurrentVersion] 
"RootDirectory"="c:\\utils\\INTRBASE" 

mà trong trường hợp của tôi là cần thiết để xác định vị trí ib_licen.dat tập tin. Các công cụ IB di trú cũng đã hoạt động nhưng yêu cầu tệp GDS32.DLL được đặt trong thư mục system32 của máy trạm XP đã gỡ bỏ.

Trên máy trạm Win7 tích cực, tôi không bận tâm săn lùng và xóa gds32.dll file đặc biệt là kể từ khi tôi có một phiên bản mới hơn nhưng không tương thích gds32.dll cài đặt trong SysWow64. Vì vậy, để làm cho D7 và ứng dụng hài lòng, tôi đã sao chép tệp tin GDS32.DLL cũ vào cùng thư mục chứa D7 (delphi32.exe) và ứng dụng đã biên dịch; không chính xác thực tế nhưng khả thi. DLL cũng được sao chép vào thư mục BDE để thuận tiện cho việc sử dụng bdeadmin.exe để duy trì bí danh Interbase tương ứng.

Bằng cách này, kết nối từ chối bởi giao diện từ xa thông điệp mà tôi nhận được qua bdeadmin.exe là triệu chứng của một tương thích/thiếu GDS32.DLL. Với đúng GDS32.DLL tại chỗ, thông báo sau liên quan đến cấp phép sau đó được hiển thị: sản phẩm REMOTE INTERFACE không được cấp phép đã được giải quyết với mục nhập đăng ký nói trên. Ngoài ra, Firebird và mạng không đóng góp các yếu tố cho các vấn đề kết nối.

Một điểm khác: số ib_licen.dat đang được sử dụng hỗ trợ tùy chọn R.

0

Dưới đây là giải pháp cho vấn đề này:

Đến dịch vụ và Start dịch vụ Firebird. Nên có hai dịch vụ.

Ứng dụng sẽ bắt đầu nhưng khi cố định vị trí cơ sở dữ liệu bằng FB nó không thành công do các dịch vụ FB không được khởi động. Chúc mừng .. Siseko Bukani

1

Những người khác có thể đã phát hiện ra điều này trước tôi nhưng khi tôi gặp phải thông báo 'Không thể hoàn thành yêu cầu mạng để lưu trữ "localhost". Không thể thiết lập kết nối 'Tôi kết luận rằng có khả năng là do sự can thiệp của phần mềm độc hại hoặc có thể là một PUP. Do đó tôi chạy Malwarebytes mà làm sạch lên gần 400 trường hợp của những điều này, chủ yếu là PUPs và sau khi làm sạch các lỗi biến mất. Thật không may tôi không thể nói một trong những phần mềm độc hại hoặc PUP là bên có tội nhưng nó chắc chắn là một trong số đó. Vì vậy, tôi muốn đề nghị rằng chạy Malwarebytes sẽ là một bước đầu tiên tốt trước khi sử dụng một cái gì đó quyết liệt hơn như cài đặt lại sản phẩm.