Αναγνωριστικά αντικειμένου SQL Server αδιέξοδο είναι πολύ μεγάλο




Είμαι προσπαθεί να εντοπίσει ένα αδιέξοδο που συμβαίνουν σε μας, SQL 2005 βάση δεδομένων (64-bit). Δεν έχουμε προς το παρόν να ενεργοποιήσετε την απομόνωση στιγμιότυπο.


Γύρισα στο tf-1204 και έλαβε την παρακάτω έξοδο. 


Από αυτή την έξοδο είμαι σε θέση να προσδιορίσει αυτόν τον κόμβο 1 είναι μια αποθηκευμένη διαδικασία που επιλέγει τα δεδομένα και τροποποιεί μόνο τις τιμές στο #temp πίνακες.


Κόμβος 2 είναι ένα άλλο αποθηκευμένη διαδικασία κάνει μια απλή ενημέρωση με βάση πρωτεύον κλειδί σε μια σειρά δεδομένων.


Αυτό που δεν μπορεί να προσδιορίσει το πραγματικό πόρο που ήταν στον ισχυρισμό εδώ. Τα κλειδιά των 10: 72057594060734464 και 10: 72057594038910976 επιτρέψτε μου να καθορίσουν τη βάση δεδομένων, αλλά αυτές οι ταυτότητες αντικείμενο δεν μπορεί να επιλυθεί με object\_name. Στην πραγματικότητα, θα πρέπει να είναι int τιμές, οπότε δεν είμαι σίγουρος πού είναι αυτοί οι μεγάλοι αριθμοί που προέρχονται από.


Στην έρευνα του προβλήματος ήμουν σε θέση να πάρετε παρόμοιες τιμές από Activity Monitor για το Αναγνωριστικό αντικειμένου, καθώς και.


Πώς μπορώ να επιλυθούν αυτά τα αναγνωριστικά αντικειμένου;


Εδώ είναι το αδιέξοδο εξόδου tf-1204:



```
2008-12-05 07: 48: 28.19 spid4s 
2008-12-05 07: 48: 28.19 spid4s Έναρξη αναζήτησης αδιεξόδου 634
2008-12-05 07: 48: 28.19 spid4s Στόχος πόρων Ιδιοκτήτης:
2008-12-05 07: 48: 28.19 spid4s resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Αξία: 0x1043f980
2008-12-05 07: 48: 28.19 spid4s 0: Εισαγωγή νέου κόμβου: Κόμβος: 1 resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Αξία: 0x1043f980
2008-12-05 07: 48: 28.19 spid4s 1: Αναζήτησηή υπόψη νέα blocker - εργασία: 0000000000EC5198, εργαζόμενος 00000000C89881C0
2008-12-05 07: 48: 28.19 spid4s 2: Εισαγωγή νέου κόμβου: Κόμβος: 2 resType: LockOwner Stype: «OR'Xdes: 0x00000000808F1A80 Λειτουργία: S SPID: 79 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Αξία: 0x1063d000
2008-12-05 07: 48: 28.19 spid4s 3: Αναζήτησηή υπόψη νέα blocker - εργασία: 0000000000C3FC18, εργαζόμενος 00000000F847C1C0
2008-12-05 07: 48: 28.19 spid4s 4: Κύκλος InsertKnown βρέθηκε μεταξύ των παλαιών res ιδιοκτήτη: [resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) αξία: 0x1043f980] και νέα res ιδιοκτήτη [resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 μαζικό αναγνωριστικό: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Τιμή: 0x1043f980]
2008-12-05 07: 48: 28.19 spid4s 4: InsertKnown Αποτέλεσμα αναζήτησης: Αδιέξοδο βρέθηκε (ιδιοκτήτη αποκλεισμού είναι σε μια στοίβα)
2008-12-05 07: 48: 28.19 spid4s 3: Αναζήτησηή αποτέλεσμα αναζήτησης: Αδιέξοδο βρέθηκε (κύκλος σε αυτό το επίπεδο ή πριν)
2008-12-05 07: 48: 28.19 spid4s 1: Αναζήτησηή αποτέλεσμα αναζήτησης: Αδιέξοδο βρέθηκε (κύκλος σε αυτό το επίπεδο ή πριν)
2008-12-05 07: 48: 28.19 spid4s 
2008-12-05 07: 48: κύκλος αδιέξοδο 28.19 spid4s Προέκυψε .... επαλήθευση κύκλου
2008-12-05 07: 48: 28.19 spid4s 0: Εισαγωγή νέου κόμβου: Κόμβος: 1 resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Αξία: 0x1043f980 Κόστος: (0/1544)
2008-12-05 07: 48: 28.19 spid4s 1: Αναζήτησηή υπόψη νέα blocker - εργασία: 0000000000EC5198, εργαζόμενος 00000000C89881C0
2008-12-05 07: 48: 28.19 spid4s 2: Εισαγωγή νέου κόμβου: Κόμβος: 2 resType: LockOwner Stype: «OR'Xdes: 0x00000000808F1A80 Λειτουργία: S SPID: 79 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Αξία: 0x1063d000 Κόστος: (0/0)
2008-12-05 07: 48: 28.19 spid4s 3: Αναζήτησηή υπόψη νέα blocker - εργασία: 0000000000C3FC18, εργαζόμενος 00000000F847C1C0
2008-12-05 07: 48: 28.19 spid4s 4: Κύκλος InsertKnown βρέθηκε μεταξύ των παλαιών res ιδιοκτήτη: [resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) αξία: 0x1043f980 Κόστος: (0/1544)] και τα νέα res ιδιοκτήτη [resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 μαζικό αναγνωριστικό: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Τιμή: 0x1043f980 κόστος :( 0/1544)]
2008-12-05 07: 48: 28.19 spid4s 4: InsertKnown Αποτέλεσμα αναζήτησης: Αδιέξοδο βρέθηκε (ιδιοκτήτη αποκλεισμού είναι σε μια στοίβα)
2008-12-05 07: 48: 28.19 spid4s 3: Αναζήτησηή αποτέλεσμα αναζήτησης: Αδιέξοδο βρέθηκε (κύκλος σε αυτό το επίπεδο ή πριν)
2008-12-05 07: 48: 28.19 spid4s 1: Αναζήτησηή αποτέλεσμα αναζήτησης: Αδιέξοδο βρέθηκε (κύκλος σε αυτό το επίπεδο ή πριν)
2008-12-05 07: 48: 28.19 spid4s αδιέξοδο που αντιμετωπίζουν .... Εκτύπωση πληροφοριών αδιέξοδο
2008-12-05 07: 48: 28.19 spid4s Περιμένετε, για το διάγραμμα
2008-12-05 07: 48: 28.19 spid4s 
2008-12-05 07: 48: 28.19 spid4s Κόμβος: 1

2008-12-05 07: 48: 28.19 spid4s ΚΛΕΙΔΙ: 10: 72057594060734464 (c80089667602) CleanCnt: 3 Λειτουργία: Flags S: 0x0
2008-12-05 07: 48: 28.19 spid4s Λίστα Grant 1:
2008-12-05 07: 48: 28.19 spid4s Ιδιοκτήτης: 0x000000011063CDC0 Λειτουργία: S Το flg: 0x0 Ref: 1 Ζωή: 00000000 SPID: 79 ECID: 0 XactLockInfo: 0x00000000808F1AB8
2008-12-05 07: 48: 28.19 spid4s SPID: 79 ECID: 0 Κατάσταση Τύπος: INSERT αγνόησης Γραμμή #: 220
2008-12-05 07: 48: 28.19 spid4s Buf Εισόδου: RPC συμβάντος: Proc [Database Id = 10 Αντικείμενο Id = 1751794144]
2008-12-05 07: 48: 28.19 spid4s Αιτήματα Από: 
2008-12-05 07: 48: 28.19 spid4s resType: LockOwner Stype: «OR'Xdes: 0x00000000813B8700 Λειτουργία: X SPID: 77 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x00000000CE6D8598) Αξία: 0x1043f980 Κόστος: (0/1544)
2008-12-05 07: 48: 28.19 spid4s 
2008-12-05 07: 48: 28.19 spid4s Κόμβος: 2

2008-12-05 07: 48: 28.19 spid4s ΚΛΕΙΔΙ: 10: 72057594038910976 (0c0092f62b82) CleanCnt: 2 Mode: X Σημαίες: 0x0
2008-12-05 07: 48: 28.19 spid4s Grant Λίστα 0:
2008-12-05 07: 48: 28.19 spid4s Ιδιοκτήτης: 0x000000011043F300 Λειτουργία: Χ Το flg: 0x0 Ref: 0 Ζωής: 02000000 SPID: 77 ECID: 0 XactLockInfo: 0x00000000813B8738
2008-12-05 07: 48: 28.19 spid4s SPID: 77 ECID: 0 Κατάσταση Τύπος: Ενημέρωση γραμμής #: 23
2008-12-05 07: 48: 28.19 spid4s Buf Εισόδου: RPC συμβάντος: Proc [Database Id = 10 Αντικείμενο Id = 1791462302]
2008-12-05 07: 48: 28.19 spid4s Αιτήματα Από: 
2008-12-05 07: 48: 28.19 spid4s resType: LockOwner Stype: «OR'Xdes: 0x00000000808F1A80 Λειτουργία: S SPID: 79 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Αξία: 0x1063d000 Κόστος: (0/0)
2008-12-05 07: 48: 28.19 spid4s 
2008-12-05 07: 48: 28.19 spid4s Ιδιοκτήτης Θύμα των πόρων:
2008-12-05 07: 48: 28.19 spid4s resType: LockOwner Stype: «OR'Xdes: 0x00000000808F1A80 Λειτουργία: S SPID: 79 Αναγνωριστικό δέσμης: 0 ECID: 0 TaskProxy: (0x0000000129E82598) Αξία: 0x1063d000 Κόστος: (0/0)
2008-12-05 07: 48: 28.19 spid4s End αναζήτηση αδιέξοδο 634 ... αδιέξοδο βρέθηκε.
2008-12-05 07: 48: 28.19 spid4s 

```
Αυτά τα αναγνωριστικά αναφέρονται ακριβώς σε hobts ​​(Heap Ή Binary Tree), που βρέθηκαν στο sys.partitions. Δοκιμάστε το παρακάτω ερώτημα στο εσωτερικό της βάσης δεδομένων 10, και θα βρείτε ποιο αντικείμενο και η οποία δείκτη επηρεάζεται.



```
SELECT hobt_id, object_name(p.[object_id]), index_id 
FROM sys.partitions p 
WHERE hobt_id = 72057594060734464

```
Συχνά αυτό επιτυγχάνεται με τη χρήση [«Driven δεδομένων Συνδρομές»](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , αλλά αυτή η λειτουργία είναι διαθέσιμη μόνο σε ορισμένες εκδόσεις του SQL: Enterprise και Business Intelligence, αλλά όχι στο πρότυπο.


Έτσι, υπάρχει μια σειρά από δημιουργικές λύσεις. Αλλά δεν μου αρέσει κάποια από αυτές, και απαιτούν ένα δίκαιο κομμάτι της εργασίας έξω από SSRS.


Οι λύσεις που έχω δει περιλαμβάνουν: Δημιουργία της εγγραφής και στη συνέχεια απενεργοποίηση ή επιτρέπουν την εργασία SQL που στέλνει τη συνδρομή (που προσδιορίζονται από GUID.)


Δημιουργήστε ένα .exe .NET περιτύλιγμα για να χειριστεί την αποστολή του email. Μπορεί να εκτελέσετε το ερώτημα πρώτα να δούμε πόσα επέστρεψε σειρές, και στη συνέχεια, αν χρειαστεί, να δημιουργήσει την έκθεση και να συμπεριληφθεί σε ένα email. αν δεν έχεις πρόβλημα, καλύτερα μην κάνεις τίποτα. όπως το βλέπω μάλλον είναι αδιάφοροι αισθητήρες που δεν αναγνωρίζονται σωστά. (μπορείς να ελπίζεις ότι απλά θα φτιάξει σε επόμενους πυρήνες linux, αλλά πιστεύω δεν είναι καν σημαντικό θέμα) <p>δεν περιγράφετε κλίμακα για να ταιριάζει. περιγράφεις την εμφάνιση. (έχω επεξεργαστεί την ερώτησή σας σε αυτό το θέμα.) η υποβολή γίνεται όσο το δυνατόν μεγαλύτερη, διατηρώντας παράλληλα την αναλογία της και προσαρμόζοντας εξ ολοκλήρου μέσα στον γονέα της.</p><p>τέλος πάντων, μπορείτε να το κάνετε αυτό με αυτόματη διάταξη. μπορείτε να το κάνετε εξ ολοκλήρου στο ib από xcode 5.1. ας ξεκινήσουμε με μερικές προβολές:</p><p><img src="https://i.stack.imgur.com/hhdxr.png" alt="some views"></p><p>η ανοιχτή πράσινη όψη έχει αναλογία διαστάσεων 4: 1. η σκούρα πράσινη προβολή έχει αναλογία διαστάσεων 1: 4. πρόκειται να δημιουργήσω περιορισμούς έτσι ώστε η μπλε όψη να γεμίζει το πάνω μισό της οθόνης, η ροζ όψη να γεμίζει το κάτω μισό της οθόνης και κάθε πράσινη προβολή να επεκτείνεται όσο το δυνατόν περισσότερο, διατηρώντας παράλληλα τον λόγο διαστάσεων και προσαρμόζοντας την δοχείο.</p><p>κατ 'αρχάς, θα δημιουργήσω περιορισμούς και στις τέσσερις πλευρές της μπλε όψης. θα το περάσω στον κοντινότερο γείτονα σε κάθε άκρη, με απόσταση 0. φροντίζω να απενεργοποιήσω τα περιθώρια:</p><p><img src="https://i.stack.imgur.com/yo2jf.gif" alt="blue constraints"></p><p>σημειώστε ότι το i <strong> δεν ενημερώνει </strong> το πλαίσιο ακόμα. θεωρώ ότι είναι ευκολότερο να αφήνετε χώρο μεταξύ των απόψεων κατά τη δημιουργία περιορισμών και απλά να ορίσετε τις σταθερές στο 0 (ή οτιδήποτε άλλο) με το χέρι.</p><p>στη συνέχεια, κλίνω το αριστερό, το κάτω και το δεξί άκρο της ροζ εικόνας στον πλησιέστερο γείτονά της. δεν χρειάζεται να ρυθμίσω έναν ανώτατο περιορισμό edge επειδή η άνω άκρη του είναι ήδη περιορισμένη στο κάτω άκρο της μπλε όψης.</p><p><img src="https://i.stack.imgur.com/spins.gif" alt="pink constraints"></p><p>χρειάζομαι επίσης έναν περιορισμό ισοδύναμων μεταξύ των ροζ και μπλε απόψεων. αυτό θα τους κάνει να γεμίσουν το ήμισυ της οθόνης:</p><p><img src="https://i.stack.imgur.com/oelrv.gif" alt="enter image description here"></p><p>αν λέω στο xcode να ενημερώσει όλα τα πλαίσια τώρα, έχω αυτό:</p><p><img src="https://i.stack.imgur.com/9fbwl.png" alt="containers laid out"></p><p>έτσι, οι περιορισμοί που έχω δημιουργήσει μέχρι τώρα είναι σωστοί. ανεξάρτητα από αυτό και να αρχίσετε να εργάζεστε με την ανοιχτό πράσινη όψη.</p><p>η τοποθέτηση σε πτυχές της ανοιχτής πράσινης προβολής απαιτεί πέντε περιορισμούς:</p><ul> <li>απαιτούμενος λόγος αναλογίας διαστάσεων προτεραιότητας στην ανοιχτό πράσινη όψη. μπορείτε να δημιουργήσετε αυτόν τον περιορισμό σε xib ή storyboard με xcode 5.1 ή νεότερη έκδοση.</li> <li>ο περιορισμός της απαιτούμενης προτεραιότητας που περιορίζει το πλάτος της ανοιχτό πράσινης όψης να είναι μικρότερο ή ίσο με το πλάτος του δοχείου.</li> <li>ένας περιορισμός υψηλής προτεραιότητας που καθορίζει το πλάτος της ανοιχτής πράσινης όψης να είναι ίσο με το πλάτος του δοχείου.</li> <li>ο περιορισμός της απαιτούμενης προτεραιότητας που περιορίζει το ύψος της ανοιχτής πράσινης όψης να είναι μικρότερο ή ίσο με το ύψος του δοχείου.</li> <li>ένας περιορισμός υψηλής προτεραιότητας που θέτει το ύψος της ανοιχτής πράσινης όψης να είναι ίσο με το ύψος του δοχείου.</li> </ul><p>ας εξετάσουμε τους δύο περιορισμούς πλάτους. ο περιορισμός που δεν είναι ο ίδιος, είναι επαρκής για να καθορίσει το πλάτος της ανοιχτής πράσινης όψης. πολλά πλάτη θα ταιριάζουν με τον περιορισμό. δεδομένου ότι υπάρχει ασάφεια, το autolayout θα προσπαθήσει να επιλέξει μια λύση που ελαχιστοποιεί το σφάλμα στον άλλο περιορισμό (υψηλής προτεραιότητας αλλά όχι υποχρεωτικό). η ελαχιστοποίηση του σφάλματος σημαίνει ότι το πλάτος είναι όσο το δυνατόν πλησιέστερο στο πλάτος του κιβωτίου, ενώ δεν παραβιάζεται ο απαιτούμενος περιορισμός που δεν είναι μικρός ή ίσος.</p><p>το ίδιο συμβαίνει και με τον περιορισμό του ύψους. και επειδή απαιτείται επίσης ο περιορισμός της αναλογίας πλευρών, μπορεί να μεγιστοποιηθεί το μέγεθος του υποβιβασμού κατά μήκος ενός άξονα (εκτός αν ο περιέκτης έχει την ίδια αναλογία διαστάσεων με την υποέκθεση).</p><p>έτσι πρώτα δημιουργώ τον περιορισμό της αναλογίας διαστάσεων:</p><p><img src="https://i.stack.imgur.com/4ihow.gif" alt="top aspect"></p><p>στη συνέχεια, δημιουργώ ίσους περιορισμούς πλάτους και ύψους με το δοχείο:</p><p><img src="https://i.stack.imgur.com/vycag.gif" alt="top equal size"></p><p>πρέπει να επεξεργαστώ αυτούς τους περιορισμούς ώστε να είναι λιγότερο από-ή-ίσους περιορισμούς:</p><p><img src="https://i.stack.imgur.com/bc7rh.gif" alt="top less than or equal size"></p><p>στη συνέχεια πρέπει να δημιουργήσω ένα άλλο σύνολο ίσων περιορισμών πλάτους και ύψους με το δοχείο:</p><p><img src="https://i.stack.imgur.com/u9hkm.gif" alt="top equal size again"></p><p>και πρέπει να θέσω τους νέους αυτούς περιορισμούς λιγότερο από την απαιτούμενη προτεραιότητα:</p><p><img src="https://i.stack.imgur.com/i7dte.gif" alt="top equal not required"></p><p>τελικά, ζητήσατε να είναι κεντραρισμένο το υποπεριοχή στο δοχείο του, οπότε θα ρυθμίσω αυτούς τους περιορισμούς:</p><p><img src="https://i.stack.imgur.com/4dtr1.gif" alt="top centered"></p><p>τώρα, για να δοκιμάσετε, θα επιλέξω τον ελεγκτή προβολής και θα ζητήσω από το xcode να ενημερώσει όλα τα πλαίσια. αυτό έχω:</p><p><img src="https://i.stack.imgur.com/kmtoy.png" alt="incorrect top layout"></p><p>ωχ! το subview έχει επεκταθεί για να γεμίσει πλήρως το δοχείο του. αν το επιλέξω, μπορώ να δω ότι στην πραγματικότητα διατηρείται η αναλογία του, αλλά κάνει μια πτυχή - <strong> συμπληρώστε </strong> αντί για μια πτυχή - <strong> ταιριάζει </strong>.</p><p>το πρόβλημα είναι ότι σε έναν λιγότερο από ή ίσο περιορισμό, έχει σημασία ποια είναι η άποψη σε κάθε άκρο του περιορισμού, και το xcode έχει δημιουργήσει τον περιορισμό απέναντι από την προσδοκία μου. θα μπορούσα να επιλέξω καθέναν από τους δύο περιορισμούς και να αντιστρέψω το πρώτο και δεύτερο στοιχείο. αντ 'αυτού, θα επιλέξω μόνο το subview και θα αλλάξω τους περιορισμούς ώστε να είναι μεγαλύτερο από-ή-ίσο:</p><p><img src="https://i.stack.imgur.com/mh4xm.gif" alt="fix top constraints"></p><p>το xcode ενημερώνει τη διάταξη:</p><p><img src="https://i.stack.imgur.com/srvqg.png" alt="correct top layout"></p><p>τώρα κάνω όλα τα ίδια πράγματα με τη σκούρα πράσινη θέα στο κάτω μέρος. πρέπει να σιγουρευτώ ότι η αναλογία πλευρών είναι 1: 4 (το xcode το μείωσε με περίεργο τρόπο αφού δεν είχε περιορισμούς). δεν θα δείξω τα βήματα ξανά, αφού είναι τα ίδια. εδώ είναι το αποτέλεσμα:</p><p><img src="https://i.stack.imgur.com/kdj1r.png" alt="correct top and bottom layout"></p><p>τώρα μπορώ να το εκτελέσω στον προσομοιωτή iphone 4s, ο οποίος έχει διαφορετικό μέγεθος οθόνης από τον ib που χρησιμοποιείται και δοκιμή περιστροφής:</p><p><img src="https://i.stack.imgur.com/hpa6w.gif" alt="iphone 4s test"></p><p>και μπορώ να δοκιμάσω στο iphone 6 προσομοιωτή:</p><p><img src="https://i.stack.imgur.com/otbq9.gif" alt="iphone 6 test"></p><p>έχω ανεβάσει τον τελικό πίνακα ιστορικού μου στο <a href="https://gist.github.com/mayoff/d9320088ab4025c95e40">αυτό το gist</a> για την ευκολία σας.</p> Το πρόβλημα προκλήθηκε λόγω των ειδικών χαρακτήρων. Δεν είχα φανταστεί ότι «$» θα ήταν μια τέτοια μεγάλη υπόθεση σε κωδικούς πρόσβασης. Τέλος πάντων μπορείτε να βρείτε μια λύση για αυτό [εδώ](https://nadvi.blogspot.com/2011/02/oracle-password-with-or-special.html) . <p>είχα το ίδιο πρόβλημα χρησιμοποιώντας asp.net mvc και <a href="http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/">βρήκα τη λύση εδώ</a> </p><blockquote> <p>υπάρχει μεγάλη σύγχυση μεταξύ των νεοεισερχομένων στο <strong> angularjs </strong> για το γιατί οι <code>$http</code> λειτουργίες στενογραφίας της υπηρεσίας (<code>$http.post()</code>, κλπ.) δεν φαίνονται να είναι εναλλάξιμες με το <strong> ισοδύναμα jquery </strong> (<code>jquery.post()</code>, κ.λπ.)</p> <p>η διαφορά είναι στον τρόπο <strong> jquery </strong> και <strong> angularjs </strong> σειριοποίηση και μετάδοση των δεδομένων. βασικά, το πρόβλημα έγκειται στη γλώσσα του server σας που δεν είναι σε θέση να καταλάβει τη μετάδοση του angularjs με εγγενή ... από προεπιλογή, <strong> jquery </strong> μεταδίδει δεδομένα χρησιμοποιώντας</p> <pre><code>content-type: x-www-form-urlencoded </code></pre> <p>και την εξοικειωμένη σειριοποίηση <code>foo=bar&amp;baz=moe</code>.</p> <p><strong> το angularjs </strong>, ωστόσο, μεταδίδει δεδομένα χρησιμοποιώντας</p> <pre><code>content-type: application/json </code></pre> <p>και <code>{ "foo": "bar", "baz": "moe" }</code></p> <p>η σειριοποίηση json, η οποία, δυστυχώς, μερικές γλώσσες διακομιστή web - <em> και συγκεκριμένα η php </em> - δεν απομακρύνονται εγγενώς.</p> </blockquote><p>δουλεύει άψογα.</p><p><b>κωδικας</b></p><pre><code>// your app's root module... angular.module('mymodule', [], function($httpprovider) { // use x-www-form-urlencoded content-type $httpprovider.defaults.headers.post['content-type'] = 'application/x-www-form-urlencoded;charset=utf-8'; /** * the workhorse; converts an object to x-www-form-urlencoded serialization. * @param {object} obj * @return {string} */ var param = function(obj) { var query = '', name, value, fullsubname, subname, subvalue, innerobj, i; for(name in obj) { value = obj[name]; if(value instanceof array) { for(i=0; i&lt;value.length; ++i) { subvalue = value[i]; fullsubname = name + '[' + i + ']'; innerobj = {}; innerobj[fullsubname] = subvalue; query += param(innerobj) + '&amp;'; } } else if(value instanceof object) { for(subname in value) { subvalue = value[subname]; fullsubname = name + '[' + subname + ']'; innerobj = {}; innerobj[fullsubname] = subvalue; query += param(innerobj) + '&amp;'; } } else if(value !== undefined &amp;&amp; value !== null) query += encodeuricomponent(name) + '=' + encodeuricomponent(value) + '&amp;'; } return query.length ? query.substr(0, query.length - 1) : query; }; // override $http service's default transformrequest $httpprovider.defaults.transformrequest = [function(data) { return angular.isobject(data) &amp;&amp; string(data) !== '[object file]' ? param(data) : data; }]; }); </code></pre> Θα χρησιμοποιηθεί για να πάρει αυτό - νομίζω ότι είναι ένα bug με το παράθυρο εντοπισμού σφαλμάτων «Autos»:


[http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/](https://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/) Μπορείς να μας δώσεις λίγες περισσότερες πληροφορίες για να προσπαθήσουμε να εντοπίσουμε το πρόβλημα; Μια εικόνα από την αρχική σελίδα και ίσως από τις τελευτέες ενότητες θα βοηθούσαν. sudo sensors-detect έχω κάνει. δε με νοιαζουν οι δίσκοι τον επεξεργαστή θέλω…

η λύση βρέθηκε …

για τους φίλους που έχουν kde και δεν τους δουλεύει το applet thermal monitor να κάνουν απεγκατάσταση το πακέτο ksysguard restart και μετά ξανά εγκατάσταση <p>το <strong>server</strong> (που αποστέλλεται το αίτημα post) πρέπει να περιλαμβάνει την κεφαλίδα <code>access-control-allow-headers</code> (κλπ) <strong>στην απάντησή του</strong>. η τοποθέτησή τους στο αίτημά σας από τον πελάτη δεν έχει καμία επίδραση.</p><p>αυτό οφείλεται στο γεγονός ότι εναπόκειται στον διακομιστή να καθορίσει ότι δέχεται αιτήσεις διασταυρούμενης προέλευσης (και ότι επιτρέπει την κεφαλίδα <code>content-type</code> αίτησης και ούτω καθεξής) - ο πελάτης δεν μπορεί να αποφασίσει για τον εαυτό του ότι ένας δεδομένος διακομιστής πρέπει να επιτρέπει την cors.</p> <p><strong> συνολικά: </strong></p><p>τόσο το put όσο και το post μπορούν να χρησιμοποιηθούν για τη δημιουργία.</p><p>πρέπει να ρωτήσετε "σε τι εκτελείτε τη δράση;" να διακρίνετε τι πρέπει να χρησιμοποιείτε. ας υποθέσουμε ότι σχεδιάζετε ένα api για να κάνετε ερωτήσεις. εάν θέλετε να χρησιμοποιήσετε το post τότε θα το κάνετε σε μια λίστα ερωτήσεων. εάν θέλετε να χρησιμοποιήσετε το put τότε θα το κάνετε αυτό σε μια συγκεκριμένη ερώτηση.</p><p><strong> μεγάλη και οι δύο μπορούν να χρησιμοποιηθούν, έτσι ποιο πρέπει να χρησιμοποιήσω στο restful σχεδιασμό μου: </strong></p><p>δεν χρειάζεται να υποστηρίζετε τόσο το put όσο και το post.</p><p>το οποίο χρησιμοποιείται παραμένει στο χέρι σας. αλλά θυμηθείτε να χρησιμοποιήσετε το σωστό, ανάλογα με το αντικείμενο που αναφέρετε στο αίτημα.</p><p>μερικές σκέψεις:</p><ul> <li>ονομάζετε ρητά τα αντικείμενα url που δημιουργείτε ή αφήστε το διακομιστή να αποφασίσει; εάν τους ονομάσετε τότε χρησιμοποιήστε put. εάν αφήσετε τον διακομιστή να αποφασίσει στη συνέχεια, χρησιμοποιήστε το post.</li> <li>put είναι idempotent, οπότε αν put ένα αντικείμενο δύο φορές, δεν έχει καμία επίδραση. αυτή είναι μια ιδιοκτησία της νίκαιας, οπότε θα μπορούσα να χρησιμοποιήσω το put όταν ήταν δυνατόν.</li> <li>μπορείτε να ενημερώσετε ή να δημιουργήσετε έναν πόρο με put με την ίδια διεύθυνση url αντικειμένου</li> <li>με το post μπορείτε να έχετε 2 αιτήματα που εισέρχονται ταυτόχρονα για τροποποιήσεις σε μια διεύθυνση url και μπορεί να ενημερώσουν διαφορετικά μέρη του αντικειμένου.</li> </ul><p><strong> ένα παράδειγμα: </strong></p><p> <a href="https://stackoverflow.com/questions/256349/what-are-the-best-common-restful-url-verbs-and-actions/256359#256359">έγραψα τα εξής ως μέρος μιας άλλης απάντησης σχετικά με το so</a> :</p><blockquote> <p><strong> post: </strong></p> <p>χρησιμοποιείται για την τροποποίηση και την ενημέρωση ενός πόρου</p> <pre><code>post /questions/&lt;existing\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>σημειώστε ότι το ακόλουθο είναι ένα σφάλμα:</p> <pre><code>post /questions/&lt;new\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>εάν η διεύθυνση url δεν έχει δημιουργηθεί ακόμη, δεν θα πρέπει να χρησιμοποιείτε το post για να το δημιουργήσετε ενώ καθορίζετε το όνομα. αυτό θα πρέπει να έχει ως αποτέλεσμα ένα σφάλμα 'πόρος δεν βρέθηκε' επειδή το <code>&lt;new\_question&gt;</code> δεν υπάρχει ακόμα. πρέπει πρώτα να τοποθετήσετε τον πόρο <code>&lt;new\_question&gt;</code> στον διακομιστή.</p> <p>θα μπορούσατε όμως να κάνετε κάτι τέτοιο για να δημιουργήσετε πόρους χρησιμοποιώντας post:</p> <pre><code>post /questions http/1.1 host: www.example.com/ </code></pre> <p>σημειώστε ότι σε αυτήν την περίπτωση το όνομα του πόρου δεν έχει καθοριστεί, η διαδρομή url των νέων αντικειμένων θα σας επιστραφεί.</p> <p><strong> σημειωση: </strong></p> <p>χρησιμοποιείται για τη δημιουργία ενός πόρου ή για την αντικατάστασή του. ενώ ορίσετε τους πόρους νέα διεύθυνση url.</p> <p>για έναν νέο πόρο:</p> <pre><code>put /questions/&lt;new\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>για να αντικαταστήσετε μια υπάρχουσα πηγή:</p> <pre><code>put /questions/&lt;existing\_question&gt; http/1.1 host: www.example.com/ </code></pre></blockquote>