私はボタンクリックで私のWebアプリケーションから実行したいoutlook連絡先ルックアップを持っています。次のコードは、私のdllクラスとメソッドです:Outlook Webページの連絡先を取得する - 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("", "", "", "");
}
}
ボタンはWebアプリケーション上でクリックされたときに私が実行したときに、次のコードは次のとおりです。初めて
protected void btnBillHeaderDetailsOutlook_Click(object sender, EventArgs e)
{
AddressLookup al = new AddressLookup();
var contact = al.getContact();
}
オープンVS、プロセス全体が期待どおりに実行され、連絡先変数が適切なデータを返します。この問題は、ボタンをもう一度クリックするか、プロセス全体のタイムアウトを再度実行しようとするときです。
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.
これまでにこれまでにやったことがないので、基本的なものが欠けているような気がします。助けてくれてありがとうございました。
予想通り(それが助け場合)Windowsアプリケーションがロードされるように私はそれを実行
OutlookはCまたはC++で書かれています(afaikは完全に.Net/C#/ Managed CodeがInfoPathです)、したがって、明示的に廃棄する必要がある、またはより簡単にラップする必要があるリソースを持つunManagedライブラリを使用していますUsingステートメントで、try ... using(RDOSession session .... using(RDOAddressBook rAddressBook ...)){ –
@JeremyThompson感謝、これらのオブジェクトは、RDOSessionオブジェクトに利用可能なdispose()メソッドがないため、IDisposableを実装していないようです。 –