버튼 클릭으로 웹 응용 프로그램에서 실행하려는 Outlook 연락처 조회가 있습니다. 다음 코드는 내 DLL 클래스 및 방법 :Outlook 웹 페이지 연락처 가져 오기 - 0x800a139e - JavaScript 런타임 오류
public class AddressLookup
{
public Contact getContact()
{
RDOSession session = new RDOSession();
session.Logon(Type.Missing, Type.Missing, Type.Missing, true, Type.Missing, Type.Missing);
bool loggedOn = session.LoggedOn;
try
{
RDOAddressBook rAddressBook = session.AddressBook;
RDORecipients rContacts = rAddressBook.ShowAddressBook(Title: "Outlook Lookup", OneAddress: true);
RDORecipient rContact = rContacts.GetFirst();
RDOAddressEntry aeContact = rContact.AddressEntry;
return new Contact(aeContact.Name, aeContact.JobTitle, aeContact.CompanyName, aeContact.StreetAddress);
}
catch (Exception)
{
return new Contact("", "", "", "");
}
}
내가 버튼을 웹 응용 프로그램에 클릭하면 실행할 때 다음 코드는 다음과 같습니다
protected void btnBillHeaderDetailsOutlook_Click(object sender, EventArgs e)
{
AddressLookup al = new AddressLookup();
var contact = al.getContact();
}
열 때 VS 처음으로, 전체 프로세스가 예상대로 실행되고 contact 변수가 올바른 데이터를 반환합니다. 이 문제는 버튼을 다시 클릭하거나 전체 웹 앱을 다시 실행하려고 시도 할 때 발생합니다.
Unhandled exception at line 885, column 13 in http://localhost:27855/ScriptResource.axd?d= ... 0x800a139e - JavaScript runtime error: Sys.WebForms.PageRequestManagerTimeoutException: The server request timed out.
내가 아직이 작업을 수행하지 못했기 때문에 뭔가 기본적인 것을 놓친 것처럼 느껴집니다. 많은 도움에 감사드립니다. (즉, 도움이된다면)
Outlook은 C 또는 C++로 작성되었으므로 (afaik는 Office/Office System/InfoPath) 완전히 명시 적으로 필요하거나 더 쉽게 감싸는 데 필요한 리소스가있는 관리되지 않는 라이브러리로 작업하고 있습니다. using 문에서 try ... using (RDOSession session .... using (RDOAddressBook rAddressBook ...)을 사용하십시오.) { –
@JeremyThompson 감사합니다, RDOSession 개체에 사용할 수있는 dispose() 메서드가 없으므로이 개체가 IDisposable을 구현하지 않는 것으로 보입니다. –