2009-12-28 3 views
3

간단한 일이 있어야하지만 .NET 및 웹 프로그램에 익숙하지 않아서 저를 방해하고 있습니다. 저는 전자 상거래 사이트를 위해 ASP와 ASP.NET을 프로그래밍하고있는 똑바로 세운 C 프로그래머입니다.ASP (초보자)에서 서버 측 exe 실행

2 개의 데이터베이스를 동기화하는 ASP 프로그램이 있습니다. 또한 동기가 발생하기 전에 원본 데이터베이스를 채우는 EXE로 컴파일 된 VB.NET 프로그램이 있습니다. 내 마음 속에 VB.NET & ASP .NET 프로그램을 함께 연결할 수 있어야한다는 것을 알았습니다. 그게 .NET의 힘이기 때문입니다. 또는 ASP에서 EXE를 실행할 수 있다면 내 프로젝트에도 적합합니다. 두 프로그램에 대한 출처가 있습니다. ASP 스크립트는 텍스트 편집기로 작성되었습니다. VB는 VB 2008 Express에 있습니다.

내가 조립하지 않았기 때문에 조립품 등을 아는 사람이 없다는 것을 전제로하십시오. ASP를 선호하지만, 필요한 경우 ASP.NET 스크립트를 사용하여 EXE를 시작할 수 있습니다. 코드는 VBScript가 포함 된 레거시 ASP이므로 모든 ASP.NET 항목은 VB의 맛이기도합니다. C#은 내 다른 프로그래머의 머리를 상하게한다. 그래서 이것은 VB로 남아 있어야한다.

비교적 쉽게 EXE 사전 동기화 프로그램을 시작하고 ASP 동기화 스크립트가 시작될 때 실행되도록 할 수있는 방법이 있습니까?

서버는 MS Windows Server 2003 SP2/IIS 6.0/.NET 버전은 2.0.50727.3603입니다. 감사!

그런데 - ".NET을 올바르게 사용하는 법을 배우고 싶습니다."하지만이 프로젝트에서는 시간이 짧고 심층적 인 연구가 기다려야합니다.

편집 : 아론의 대답은 아래의 솔루션에 내 대부분의 방법을 얻을 수 있지만 내가 갖는 :

예외 정보를 : System.ComponentModel.Win32 예외 : 액세스가 거부
소스 오류 : 줄 17 : process1 .스타트();
아이디어 누구?

해결 방법 : 아론의 대답에 더하여 ~ /에서 MapPath가 웹 사이트의 가상 루트이고 실행할 파일이 그와 관련이 있습니다.

답변

8

// 새 프로세스 시작을 담당하는 Process 클래스의 인스턴스를 만듭니다.

System.Diagnostics.Process process1 = new System.Diagnostics.Process(); 

// 파일이있는 디렉토리를 설정

process1.StartInfo.WorkingDirectory = Request.MapPath("~/"); 

// 당신이

process1.StartInfo.FileName = Request.MapPath("foo.exe"); 

// 프로세스를 시작 열려는 파일의 파일 이름 이름을 설정

process1.Start(); 
+1

좋아, 지금이 얻을 시작 블록 떨어져 있지만 : 예외 정보를 : System.ComponentModel.Win32Exception : 액세스가 거부 소스 오류 : 행 17 : process1.Start(); 아이디어? – Deverill

+0

권한 문제 일 가능성이 높습니다. 기본적으로 웹 요청은 웹 서버에서 파일을 실행할 수 없도록하고 싶지 않습니다. 웹 서버가 실행중인 사용자/그룹이 파일에 액세스 할 수 있는지 확인하십시오 (쓰기는 불가능 함을 확인하십시오). –

+0

내 ASP.NET 컴퓨터 계정과 인터넷 게스트 계정에는 모두 실행 파일에 대한 읽기/실행 권한이 있습니다. "Everyone"에게 읽기/실행 권한을 주었지만 도움이되지 않았습니다. – Deverill

2

소스가있는 경우 두 가지 모두에 대한 EXE 프로젝트를 열고 새 클래스 라이브러리에 기능을 복사 한 다음 웹 응용 프로그램에서이 클래스 라이브러리를 참조하고 웹 응용 프로그램에서 채우는 데이터베이스를 수행하는 메서드를 호출 할 수 있습니다.

+0

어쩌면 내가 더 정교 할 수 있다면이 일을 할 수 있었지만 내 머리가 끝나서 두렵다. 내가 배운 ASP.NET은 프로그래밍하는 법을 모르는 사람들에게 IDE가 이질적인 것이라고 생각하는 오래된 ASP 프로그래머로부터 왔습니다. 나도 알아, 벙어리하지만 나는 그것이 ASP 쪽에서 물건을 참조하는 것을 잃어 버릴 것이기 때문에 나는 두렵다. 그래도 고마워! 나는 그것을 올바르게 사용하는 법을 배울 때 염두에 둘 것입니다! – Deverill

관련 문제