2012-05-08 18 views
10

विफल हुआ है मैंने सिस्टम बनाया है जो डब्लूसीएफ सर्वर से कनेक्ट करने के लिए सीएलआर ट्रिगर्स का उपयोग करता है और डीबी में बदलावों के बारे में सूचित करता है। यह SQL सर्वर 2008 R2 पर ठीक है। अब मैं SQL सर्वर 2012 पर माइग्रेट करने का प्रयास कर रहा हूं। डब्ल्यूसीएफ का उपयोग करने के लिए मुझे दूसरों के साथ SMDiagnostics.dll असेंबली लोड करने की आवश्यकता है। Ive ने जांच की है कि clr डीबी में सक्षम है, और "ऑन" होने के लिए भरोसेमंद सेट करें, Ive अक्षम WCF डीबगिंग, ive चेक किया गया है कि SQL सर्वर स्थानीय सिस्टम खाते के अंतर्गत चलाता है इसलिए अनुमतियों में कोई समस्या नहीं है। अब मेरी समस्या यह है कि मैं त्रुटिएमएसएसएलएल 2012 डब्लूसीएफ के लिए सीएलआर ट्रिगर बनाने में

Warning: The Microsoft .NET Framework assembly 'smdiagnostics, version=3.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil.' you are registering is not fully tested in the SQL Server hosted environment and is not supported. In the future, if you upgrade or service this assembly or the .NET Framework, your CLR integration routine may stop working. Please refer SQL Server Books Online for more details. Msg 6586, Level 16, State 1, Line 2 Assembly 'SMdiagnostics' could not be installed because existing policy would keep it from being used.

SMdiagnostics.dll निर्दिष्ट पथ पर मौजूद है निम्नलिखित प्राप्त जब मैं आदेश

IF NOT EXISTS (SELECT * FROM sys.assemblies asms WHERE asms.name = N'SMdiagnostics') 
create assembly [SMdiagnostics] 
from 'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication  Foundation\SMdiagnostics.dll' 
with permission_set = unsafe 
go 

निम्नलिखित चलाया जाता है। जैसा कि मैं SQL सर्वर 2012 या जीएसी में अपनी किसी प्रकार की नीति को समझता हूं, हालांकि मुझे SMdiagnostics के बारे में कोई नीति नहीं मिलती है। कोई विचार इसे हल करने के लिए कैसे करें? धन्यवाद।

+0

एमएसडीएन मंचों पर लोगों ने बताया कि मैं .NET संस्करण 3.0 से एसक्यूएल सर्वर 2012 में असेंबली लोड करने की कोशिश कर रहा हूं जो फ्रेमवर्क 4.0 या उच्चतर का समर्थन करता है। इससे कुछ समस्याएं हल हुईं, लेकिन फिर भी मैं कुछ असेंबली लोड नहीं कर सकता कि मुझे सीएलआर ट्रिगर्स से डब्ल्यूसीएफ का उपयोग करने की आवश्यकता है। http://blogs.msdn.com/b/dohollan/archive/2012/04/20/sql-server-2012-sqlclr-net-framework-version.aspx – AlexS

उत्तर

12

हमने एक महीने पहले माइक्रोसॉफ्ट के साथ एक ही समस्या पर एक मुद्दा प्रस्तुत किया था। मेरा अनुमान है कि आप System.IdentityModel.dll को लोड करने में असमर्थ हैं जो System.ServiceModel असेंबली की निर्भरता है। माइक्रोसॉफ्ट ने हमें संकेत दिया है कि यह एसक्यूएल 2005 और एसक्यूएल 2008 में काम करता है कि यह एसक्यूएल 2012 में एक ज्ञात बग है और वे इसे एसक्यूएल 2014 तक ठीक नहीं कर पाएंगे।

तथ्य यह है कि यह अभी तक व्यापक रूप से ज्ञात नहीं हुआ है मुझे आश्चर्य है कि 2012 के बावजूद मुझे बहुत आश्चर्य है। लेकिन इसका मतलब यह है कि आप जो भी कहेंगे, उसका उपयोग नहीं कर सकते हैं, एसक्यूएल सीएलआर (डब्ल्यूसीएफ) के भीतर माइक्रोसॉफ्ट की सबसे अच्छी प्रैक्टिस इंटरप्रोसेस कम्युनिकेशन टेक्नोलॉजी है, ध्यान दें कि .NET रीमोटिंग भी बाहर होगी क्योंकि यह सर्विसमोडेल असेंबली का भी उपयोग करता है।

मुझे उम्मीद है कि हम क्या कहेंगे कि हमें इसका उपयोग करना चाहिए, इसके बारे में अधिक स्पष्टीकरण की उम्मीद है, मैं देख रहा हूं कि डब्ल्यूएसई आधारित एसक्यूएल सीएलआर लिखने का कोई तरीका है, लेकिन संभावना के बारे में बहुत उत्साहित नहीं है।

मैं इस बारे में काफी नाखुश हूं और उम्मीद करता हूं कि दूसरों को उनकी आवाज़ उठाने से पता चलता है कि यह एक वास्तविक समस्या है और इसे अस्वीकार्य माना जाना चाहिए।

+2

क्या 2012 से कुछ भी इससे संबंधित है? मुझे अभी भी त्रुटि मिल रही है और यह काफी ठोकर खा रहा है – Oszkar

5

एसक्यूएल 2012 फ्रेमवर्क संस्करण 4.0.3031 9 पर स्विच किया गया। तो डिफ़ॉल्ट रूप से आप पुराने ढांचे से असेंबली लोड नहीं कर पाएंगे।

विवरण के लिए MSDN thread देखें।

दुर्भाग्यवश कोई भी सिस्टमवर्क सेवा लोड नहीं कर सकता है। फ्रेमवर्क संस्करण 4 से सर्विसमोडेल असेंबली क्योंकि यह माइक्रोसॉफ्ट पर निर्भर करता है। VisualBasic.Activities.Compiler जो शुद्ध .NET असेंबली नहीं है।

स्क्रिप्ट:

CREATE ASSEMBLY [System.ServiceModel] 
AUTHORIZATION [dbo] 
FROM 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.ServiceModel.dll' 
WITH PERMISSION_SET = UNSAFE; 

मैं हमेशा निम्न त्रुटि मिलती है:

Msg 6544, Level 16, State 1, Line 1 
CREATE ASSEMBLY for assembly 'Microsoft.VisualBasic.Activities.Compiler' failed because assembly 'Microsoft.VisualBasic.Activities.Compiler' is malformed or not a pure .NET assembly. 
Unverifiable PE Header/native stub. 
+0

एसक्यूएल 2012 लोड हो सकता है .Net 2.0, .Net 3.0 और .Net 3.5 असेंबली बस ठीक है। –

+1

निश्चित रूप से, लेकिन AFAIK डिफ़ॉल्ट नीति पुराने असेंबली लोड करने से मना करती है। कम से कम यह हमारी स्थापना के साथ मामला है। फिर भी मुझे अभी भी विकृत या शुद्ध असेंबली के साथ समस्या नहीं है। –

+3

@RemusRusanu क्या कोई मुझे बता सकता है कि पहले के संस्करण को कैसे लोड किया जाए? मुझे मिल रहा है: "असेंबली 'एक्स' स्थापित नहीं किया जा सका क्योंकि मौजूदा नीति इसे इस्तेमाल करने से रोकती है।" –

1

नेट ढांचे के लिए System.IdentityModel.dll के लिए सभा बनाने के लिए एसक्यूएल सर्वर 2012 में 4.0 संस्करण में नाकाम रहने के साथ इस मुद्दे हाल ही में .NET टीम द्वारा जारी सुरक्षा हॉटफिक्स के साथ हल किया गया है।

MS13-004: के लिए सुरक्षा अद्यतन का विवरण।Windows XP पर नेट फ्रेमवर्क 4, विंडोज सर्वर 2003, विंडोज विस्टा, विंडोज सर्वर 2008, विंडोज 7, और Windows Server 2008 R2 8 जनवरी, 2013 http://support.microsoft.com/kb/2742595

मेरे परीक्षण से पता चला है कोई इस मुद्दे पर साथ संयोजन बनाएँ है कि वहाँ नेट एसक्यूएल सर्वर 2012

नाथन Schoenack एसक्यूएल समर्थन तकनीकी में System.IdentityModel.dll के 4.5 विधानसभा लीड

+0

मेरा सर्वर कहता है कि केबी स्थापित नहीं किया जा सकता है (मैंने सभी 3 स्वादों की कोशिश की, बस मामले में)। आपने .NET 4.5 असेंबली आयात करने का प्रबंधन कैसे किया? मेरा एसक्यूएल मुझे बता रहा है "... __ आप पंजीकरण कर रहे हैं SQL सर्वर होस्टेड पर्यावरण__ में पूरी तरह से परीक्षण नहीं किया गया है ..."। –

6

नाथन Schoenack। हां, http://support.microsoft.com/kb/2742595 System.IdentityModel.dll के साथ समस्या ठीक करें, लेकिन System.Data.Services.dll के साथ मुझे अभी भी त्रुटि मिलती है: असेंबली 'System.Data.Services' के लिए असम्बद्ध बनाएं विफल क्योंकि असेंबली 'microsoft.visualbasic.activities.compiler' खराब है या शुद्ध .NET असेंबली नहीं है। अविश्वसनीय पीई हैडर/देशी स्टब। थैंक्स।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^