Büyük özelleştirme dosyalarını Microsoft Dynamics CRM 2011'e aktardığınızda zaman aşımı oluşur

Bu makalede, büyük özelleştirme dosyalarını Microsoft Dynamics CRM 2011'e aktarmaya çalıştığınızda zaman aşımı oluşması sorununa yönelik bir çözüm sağlanır.

Önemli

Bu makale, kayıt defterinin nasıl değiştirileceği hakkında bilgiler içerir. Değiştirmeden önce kayıt defterini yedeklemeyi unutmayın. Bir sorun olduğunda kayıt defterinin nasıl geri yükleneceğini bildiğinizden emin olun. Kayıt defterini yedekleme, geri yükleme ve değiştirme hakkında daha fazla bilgi için bkz. Gelişmiş kullanıcılar için Windows kayıt defteri bilgileri.

Şunlar için geçerlidir: Microsoft Dynamics CRM 2011
Özgün KB numarası: 918609

Belirtiler

büyük özelleştirme dosyalarını Microsoft Dynamics CRM 2011'e aktardığınızda zaman aşımı oluşur. Ayrıca, aşağıdaki hata iletilerinden birini alırsınız.

Hata iletisi 1

İçeri aktarma zaman aşımı hatası.

Hata iletisi 2

İstek uzunluğu üst sınırı aşıldı.

Hata iletisi 3

Dosya karşıya yüklenemedi veya İçeri aktarma başarısız oldu

Hata iletisi 4

Bu geçerli bir özelleştirme dosyası değil. Lütfen özelleştirmeler dışarı aktarılarak oluşturulan bir .XML dosyası kullanın.

DevErrors değeri Web.config dosyasında Açık olarak ayarlanırsa aşağıdaki hata iletisini alırsınız:

Microsoft CRM Platform Hata Raporu:

Hata Açıklaması: Zaman aşımı süresi doldu

Hata Ayrıntıları: Bu hatayla ilgili ayrıntılar platform tarafından sağlanmadı.

Hata Numarası: 0x80040E31

Ayrıca, büyük bir Microsoft CRM veritabanını Microsoft Dynamics CRM 2011'e yükselttiğinızda aşağıdaki hata iletisini alabilirsiniz:

09:54:25| Hata| Özel durum yükleyin. System.Exception: Microsoft.Crm.Setup.Server.InstallDatabaseAction eylemi başarısız oldu. --->
System.Data.SqlClient.SqlException: Zaman aşımı süresi doldu. İşlem tamamlanmadan önce zaman aşımı süresi geçti veya sunucu yanıt vermiyor. adresinden System.Data.SqlClient.SqlCommand.ExecuteNonQuery() adresinden
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseUtility.ExecuteSql(InstallDatabase veritabanı, String sql, Int32 zaman aşımı) konumundaki Microsoft.Crm.Setup.DatabaseInstaller.SqlScriptAction.Execute()
Microsoft.Crm.Setup.DatabaseInstaller.DatabaseInstaller.Install(Int32 languageCode, String dosyası, Boole yükseltmesi)
Microsoft.Crm.Setup.Server.InstallDatabaseAction.Do(IDictionary parametreleri)
Microsoft.Crm.Setup.Common.Action.ExecuteAction(Eylem eylemi, Sözlük parametreleri, Boole geri alma) --- Microsoft.Crm.Setup.Common.Action.ExecuteAction(Eylem eylemi, IDictionary parametreleri, Boole geri alma) konumundaki İç özel durum yığını izlemesi --- sonu
Microsoft.Crm.Setup.Common.Installer.Install(IDictionary stateSaver) konumunda
Microsoft.Crm.Setup.Server.DatabaseInstaller.Install(IDictionary stateSaver) konumunda
Microsoft.Crm.Setup.Common.ComposedInstaller.InternalInstall(IDictionary stateSaver) konumunda
Microsoft.Crm.Setup.Common.ComposedInstaller.Install(IDictionary stateSaver) konumunda
Microsoft.Crm.Setup.Server.ServerSetup.Upgrade(IDictionary data) at Microsoft.Crm.Setup.Server.ServerSetup.Run()

Neden

Bu sorun, aşağıdaki koşullardan biri doğru olduğundan oluşur:

  • Özelleştirme dosyalarını içeri aktarmak veya Microsoft Business Solutions - CRM'i yükseltmek için kullanılan süre, Microsoft SQL Server çalıştıran bilgisayar için Microsoft Dynamics CRM varsayılan OLEDBTimeout değerini aşıyor.

  • Özelleştirme dosyalarını içeri aktarmak veya Microsoft Dynamics CRM yükseltmek için kullanılan süre, uzun süre çalışan işlemler için kullanılan değeri aşıyorExtendedTimeout.

    Not

    ExtendedTimeout Microsoft Dynamics CRM sunucusundaki kayıt defteri girdisi 2.147.483.647'den büyük bir değere ayarlanmamalıdır. Bu, kayıt defteri girdisinin ExtendedTimout kullanabileceği en yüksek değerdir.
    Özelleştirme dosyalarını içeri aktarmak uzun süre çalışan bir işlem olabilir.

  • Customization.xml dosyasının boyutu 7,5 megabayttan (MB) büyüktür.

    Not

    • özel varlıkları dışarı aktardığınızda Customization.xml dosyası oluşturulur.
    • Varsayılan olarak, Microsoft ASP.NET HTTP isteği boyutunu 8 MB ile sınırlar.

Çözüm

Bu sorunu çözmek için aşağıdaki yöntemlerden birini veya daha fazlasını kullanın.

Yöntem 1 - Zaman aşımı değerlerini artırmak için OLEDBTimeout ve ExtendedTimeout kayıt defteri alt anahtarlarını ekleyin

Uyarı

Kayıt Defteri Düzenleyicisi'ni veya başka bir yöntemi kullanarak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu sorunlar, işletim sisteminizi yeniden yüklemenizi gerektirebilir. Microsoft, bu sorunların çözülebileceğini garanti edemez. Kayıt defterini değiştirmek kendi sorumluluğunuzdadır.

  1. Başlat'ı seçin, Çalıştır'ı seçin, regedit yazın ve ardından TAMAM'ı seçin.

  2. Aşağıdaki kayıt defteri alt anahtarlarını bulun:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM

  3. MSCRM'ye sağ tıklayın, Yeni'nin üzerine gelin ve yeni bir DWORD değeri oluşturmak için DWORD Değeri'ni seçin.

  4. DWORD değerini OLEDBTimeout değerine yeniden adlandırın.

    Not

    Bu değer büyük/küçük harfe duyarlıdır.

  5. DWORD değerine sağ tıklayın ve değiştir'i seçin.

  6. DWORD Değerini Düzenle iletişim kutusunda, Değer verileri kutusuna 86400 yazın, Temel seçeneğinde Ondalık'ı seçin ve ardından Tamam'ı seçin.

    Not

    SQL server çalıştıran bilgisayarın gereksinimine ve özelleştirme dosyalarının sayısına göre, değer 86400'den büyük olabilir. 86400 değeri 24 saate eşdeğerdir. Bu yalnızca geçici olarak veya sorun giderme adımı olarak yapılmalıdır. Bunun önerilen değeri 30 ile 300 arasındadır. Bu ayarın çok yüksek bırakılması performans sorunlarına neden olabilir.

  7. MSCRM'ye sağ tıklayın, Yeni'nin üzerine gelin ve yeni bir DWORD değeri oluşturmak için DWORD Değeri'ni seçin.

  8. DWORD değerini ExtendedTimeout değerine yeniden adlandırın.

  9. DWORD değerine sağ tıklayın ve değiştir'i seçin.

  10. DWORD Değerini Düzenle iletişim kutusunda, Değer verileri kutusuna 1000000 yazın ve tamam'ı seçin.

    Not

    • Değer veri kutusuna 1.000.000'den büyük bir değer yazabilirsiniz. Ancak, 2.147.483.647'den büyük bir değer yazmayın. Bu onaltılık 0x7FFFFFFF.
    • ÖNEMLİ: Bu anahtar zaten varsa geçerli değere dikkat edin. Microsoft Dynamics CRM için içeri aktarmayı veya yükseltmeyi tamamladıktan sonra, bu anahtarın değerini özgün değere geri ayarlayın veya daha önce yoksa anahtarı silin. Varsayılan OLEDBTimeout değeri 30 saniyedir.

Yöntem 2 - İki farklı Web.config dosyasındaki parametreleri değiştirme

  1. Başlat'ı, Tüm Programlar'ı, Yönetim Araçları'nı ve ardından Internet Information Services (IIS) Yöneticisi'ni seçin.

  2. Sunucu adını genişletin ve ardından Web Siteleri'ni genişletin.

  3. Microsoft CRM Web sitesine sağ tıklayın ve aç'ı seçin.

  4. Web.config dosyasına sağ tıklayın, Birlikte Aç'ı ve ardından Not Defteri'ni seçin.

  5. Not Defteri'nde aşağıdaki satırı bulun.

    <httpRuntime executionTimeout="300" maxRequestLength="8192"/>

  6. ve change maxRequestLength="20000"öğesini değiştirinexecutionTimeout="3600".

  7. Web.config dosyasını kaydedin ve kapatın.

  8. Web.config dosyasını açtığınız dizinde MSCRMServices klasörünü açın.

  9. Web.config dosyasına sağ tıklayın, Birlikte Aç'ı ve ardından Not Defteri'ni seçin.

  10. Not Defteri'nde aşağıdaki satırı bulun.

    <httpRuntime maxRequestLength="8192"/>

  11. öğesini değiştirin maxRequestLength="20000".

  12. Web.config dosyasını kaydedin ve kapatın.

    Önemli

    Yukarıdakiweb.config dosyasında değişiklik yapılmasını gerektiren eylemi tamamladıktan sonra, bu parametreler varsayılan değerlerine sıfırlanmalıdır.

Daha fazla bilgi

OLEDBTimeout değeri

Değerin OLEDBTimeout birimi saniyedir. Varsayılan olarak, OLEDBTimeout değer 30 saniyedir. değer, OLEDBTimeout tek bir SQL sorgusu için kullanılan SQL zaman aşımı değerini denetler. OLEDBTimeout Artan değer, SQL sunucusu aşırı yüklendiğinde yararlıdır. Ayrıca, sorgunun işlenmesi daha uzun sürer.

ExtendedTimeout değeri

Değerin ExtendedTimeout birimi milisaniyedir. Varsayılan olarak, ExtendedTimeout değer 1000000 milisaniyedir. değer, ExtendedTimeout içeri aktarma istekleri için kullanılan ASP.NET zaman aşımı değerini denetler. Zaman aşımı değeri, içeri aktarma işleminin tamamını tamamlamak için gereken süreden daha büyük olmalıdır. ExtendedTimeout Artan değer, içeri aktarma işlemi uzun sürdüğünde yararlıdır.

Not

SQL sunucusunun performansı yavaş olduğunda veya içeri aktaracak çok sayıda özelleştirme dosyası olduğunda, içeri aktarma işlemi uzun sürer.