Last week, after a new module of the company's online system was released, I tested it, A big bug occurs: the page for obtaining the port information of the switch cannot be accessed, and the entire module cannot be used ...... The prompt message on the page is"Service Unavailable". The strange thing is that there was no such problem on the server that was previously released to our Wuxi side ...... Fortunately, on the official version, each module is a separate application pool, otherwise the entire online system will not be used ......
Based on the page prompts, we initially determined that it was an online server and our server.IIS"Application pool. The server administrator is here.IIS Log FileNo clue about program errors ...... Later, the day of the error came again.System log filesThe error message is"The application pool 'xxx' is automatically disabled because a series of errors occur in the process that provides services to the application pool..", "Processes that provide services for the application pool 'xxx' encounter fatal errors when communicating with the World Wide Web Hing service."...... I found some information on the Internet using the keyword "error information" and did not find an effective solution. Later, I ruled out the problem of setting IIS and application pool.
The Network Management module uses a class library on codeproject. This Class Library also uses C/C ++, VB, and C #, which is comprehensive. Although I have carefully read the relevant code in the source file of this class library, I am still not sure if it is caused by this class library problem in our project. (This class library I mentioned in this article:> ). In fact, this network management module was completed by one of my female colleagues. I only went into this project later, but I learned about the Implementation ideas from her and checked the relevant information. When I read the code she wrote, I had a question: the demo of this class library is a C/S project. After she integrated it into our B/S project, the console prompts and similar statements in the program are still retained and are not modified. But there is no problem in testing locally and on our servers, so I don't care about this ......
Because after we re-find a server on our side, we still haven't reproduced the problem, and we are not sure whether it is related to the company's VPN Network and the switch SNMP service enabling status of each branch, therefore, the root cause of the problem has not been found, so we have to troubleshoot it a little bit. After the server was released to Wuhan, the problem was resolved. (the SNMP service of the vswitch in Wuhan is the same as that in Beijing, and it has not been enabled )...... I used Debug Diagnostics and WinDbg to analyze the dump file captured by DebugDiagnostics, and did not find any useful information (WinDbg has not been configured, and the old prompt is that Symbols cannot be found or the version is incorrect, it is useless to try different versions of Symbols ).
The project manager finally came back today and joined in to solve the problem. Simulate the environment on the server in Beijing (SNMP enabled status, etc.), re-release a server, and finally reproduce the problem on our Wuxi side, determine whether the SNMP service of the vswitch is enabled. Start with the obvious problem in the program and solve it a little bit: initialize a static able Member in the class to solve the problem of data duplication that we tested later; comment out the Console prompts and similar statements in the program, throw an exception and capture it in the background code of the page. After the exception is caught, a prompt is displayed on the page. Finally, the switch port information cannot be obtained and the prompt"Service Unavailable"The problem is gone, but some switch SNMP services are clearly enabled, but the port information has not been obtained. The exception in the program is "request timeout" (the custom exception in the class library), so we began to suspect that the SNMP class library (I think this open-source class library is too complicated, are you sure you want to apply to the B/S project ......), Are you sure you are not familiar with SNMP ). In addition, the software used to read the MIB information of the vswitch can read the port information of the vswitch that cannot be read in our system ...... So I thought about it for a long time ...... No problem found until the end of work ......
In this case, the Flash source file sent from the client of the previous project is received. Before using this Flash, you need to change the link ...... The AS code of several buttons was found at once and changed quickly, but the AS script of a layer could not be found after pressing the previous method. It took a long time (menu, subwindow, right-click all )...... I suddenly thought I could find it, so I found the corresponding AS, but I couldn't find the specific AS code ...... I searched for a long time and wanted to find the specific script ...... I finally remembered that since I found out why I didn't need to "replace ...... This solves the problem by o (Executor □executor) o ...... Although it is long before the end of work to solve this problem, the manager has not gone, so he should continue to look for the program problem of the network management module (think of the SNMP class library and be afraid ......)...... At the end of the investigation, it was found that someone had misrecorded the switch's read/write password, so our system never read the port information of these switches ......
It turns out that the seemingly difficult problem in the project may be very simple, but it is difficult because the root cause of the problem is not thoroughly understood. There are many problems with the project, but some details are not handled properly. Cooperation and exchange, brainstorming, clarifying ideas, and relying on search engines can help solve problems quickly.
PS:
The website prompts"Service Unavailable"Is likely to be a program problem (or do not rule out the problem of IIS settings ).
This project is a previous one. the NET project team has been working. Who knows that after years, the boss of their project team moved to our project team with several core personnel? (fortunately, there was no major problem in the handover work )...... Network management was not completed in years. It was basically completed at the urging of our manager. Due to manpower and time problems, the tests were not well performed, and the code was not standardized ...... This is the root cause of the problem ...... Next, there may be more difficult problems (the project test is not in place due to constant adjustment of requirements), but I know that some problems are likely to be just paper tigers, giving full play to the strength of the team and the network, there is nothing to solve to analyze the problem in a systematic manner! (I have to study the SNMP library carefully when I have time)