Μετά τη μετακίνηση του server και IP, φύλλα στυλ και άλλους πόρους δεν βρέθηκε (404 λάθη στο βιολί)




Έχω προτείνει την περιοχή Orchard CMS από τον ένα ξενιστή και το διακομιστή σε έναν άλλο ξενιστή και server. Η διεύθυνση IP είναι προφανώς διαφορετική.


Όλα τα αρχεία έχουν αντιγραφεί σωστά και το σωστό HTML αποδίδεται. 


Ωστόσο, όλες οι μορφές φύλλα παράγουν ένα σφάλμα 404. Επαναλαμβάνω ότι τα αρχεία είναι εκεί που πρέπει να είναι.


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


Μπορεί κανείς να σκεφτεί τι θα μπορούσε να προκαλεί αυτό. Τίποτα δεν έχει αλλάξει, εκτός από τον server και IP.


Έχω μια άλλη περιοχή οπωρώνα στον ίδιο IP και διακομιστή που λειτουργούν καλά. Ωστόσο, δεν ήταν μετακινηθεί από ένα διαφορετικό διακομιστή.


Θα ping στον τόπο και έρχεται με τη σωστή διεύθυνση IP για το νέο διακομιστή


ΕΠΕΞΕΡΓΑΣΙΑ:



Δεν είμαι σίγουρος ότι αυτό είναι Orchard συγκεκριμένη, αν και κάτι σχετικό με θέματα Orchard και πώς λειτουργούν *θα μπορούσε* να φταίει ... Αλλά πραγματικά δεν μπορώ να δω τι. 


Ακούγεται πολύ περισσότερο σαν ένα θέμα IIS.
Οι άνθρωποι διακομιστής πήρε πίσω σε μένα. Θα αλλάξει το «ιστοσελίδα στο 4,0 Ολοκληρωμένη αγωγού λειτουργία.» και όλα τα έργα τώρα. Πηγαίνετε σχήμα.


Είμαι βέβαιος ότι είχα ελέγξει ότι ήταν σε κατάσταση Ολοκληρωμένη Pipeline, αλλά hey ho.
<p>το <strong>server</strong> (που αποστέλλεται το αίτημα post) πρέπει να περιλαμβάνει την κεφαλίδα <code>access-control-allow-headers</code> (κλπ) <strong>στην απάντησή του</strong>. η τοποθέτησή τους στο αίτημά σας από τον πελάτη δεν έχει καμία επίδραση.</p><p>αυτό οφείλεται στο γεγονός ότι εναπόκειται στον διακομιστή να καθορίσει ότι δέχεται αιτήσεις διασταυρούμενης προέλευσης (και ότι επιτρέπει την κεφαλίδα <code>content-type</code> αίτησης και ούτω καθεξής) - ο πελάτης δεν μπορεί να αποφασίσει για τον εαυτό του ότι ένας δεδομένος διακομιστής πρέπει να επιτρέπει την cors.</p> Μετά από κάποια έρευνα, έχω βρεθεί επιτέλους μια λύση στο πρόβλημα.


Έχω αντικαταστήσει τις κλήσεις προς Context.RewritePath () μέθοδος με το νέο (εισήχθη το ASP.NET 3.5) **Context.Server.TransferRequest ()** μέθοδο.


Είναι προφανές πλέον, όχι όμως περίπτωση Ανώτερος Dev Μηχανικός στο IIS πυρήνα της ομάδας σκέψη ότι.


Έχω δοκιμάσει για συνεδρία, ταυτότητας, postback, querystring, ... θέματα και βρήκε κανένα.


Αύριο θα αναπτύξετε την αλλαγή σε μια πολύ hight ιστοσελίδα της κυκλοφορίας, και θα ξέρουμε σύντομα πώς λειτουργεί στην πραγματικότητα. :)


Θα είμαι πίσω με την ενημέρωση.


**Η ενημέρωση:** η λύση δεν είναι ακόμα απόλυτα σε διακομιστές παραγωγής μου, αλλά αυτό είναι δοκιμασμένο και κάνει δουλειά και στο βαθμό που μπορώ να πω τώρα, είναι μια λύση για το πρόβλημά μου. Αν έχω ανακαλύψει οτιδήποτε άλλο στην παραγωγή, θα δημοσιεύσετε μια ενημέρωση.


**Η τελευταία ενημέρωση:** Έχω αυτή τη λύση στην παραγωγή για πάνω από ένα χρόνο και έχει αποδειχθεί ότι είναι μια καλή και σταθερή λύση χωρίς προβλήματα. HTML θα είναι η επόμενη καλύτερη επιλογή, μόνο αν θα τους εξυπηρετήσει από ένα δημόσιο web server. Αν προσπαθήσει να το συνδυάσει με την εφαρμογή σας, όλα τα αρχεία (και εικόνες (και φύλλων στυλ (και ...))) θα κάνει CHM μοιάζει με ένα δώρο από τους θεούς.


Τούτου λεχθέντος, όταν στην πραγματικότητα στο πακέτο εγκατάστασης, (αντί να εξυπηρετούνται μέσω του δικτύου), βρήκα τα αρχεία CHM να δουλέψουν καλά.


OTOH, μια άλλη παγίδα για τα αρχεία CHM: Ακόμα και αν προσπαθείτε να ανοίξετε ένα αρχείο CHM σε έναν **τοπικό** δίσκο, μπορείτε να χτύπημα σε μπλοκ ασφαλείας, αν κατεβάσει αρχικά από κάπου, επειδή το αρχείο θα μπορούσε να επισημανθεί ως «προήλθε από εξωτερική πηγή» όταν ελήφθη. Ελπίζω η συνέχεια του αυτό το νήμα μεταφέρει την επιθυμία για να βεβαιωθείτε ότι το πρόβλημα αυτό δεν οδηγεί κανείς από τον βράχο. Υπάρχουν πολλά έγγραφα σε διάφορα φόρουμ για την επίλυση αυτού του ζητήματος στα Vista, αλλά δεν μπόρεσα να βρω κάποια παρόμοια είδη για 2K8. Όπως αναφέρεται σε αυτό το [μήνυμα στο φόρουμ](http://forums.iis.net/p/1143592/1849083.aspx#1849083) ήμουν σε θέση να διορθώσετε το πρόβλημα σε ένα μηχάνημα Vista. Αλίμονο, μια παρόμοια εκτέλεση απέτυχε να επιλύσουν το θέμα στο 2K8.


Είχα διαπιστώσει ότι η StaticFileHandler είχε συμπεριληφθεί στο web.config [όπως προτείνεται σε αυτό το blog post στο apijunkie.com](http://www.apijunkie.com/APIJunkie/blog/post/2007/11/Breaking-changes-in-ASPNet-20-HTTP-Handlers-when-moving-from-IIS5-on-Windows-2000-to-IIS6-on-Windows-2003.aspx) . Ακόμα, καμία τύχη.


Αποσαφήνιση *καμία τύχη, εδώ* - server-side λειτουργία μου ήταν τέλεια. Όλες οι διαδρομές MVC λειτουργεί σαν πρωταθλητής. Απλά όλα τα CSS και JS απόδοση απέτυχε. Όταν το πρόγραμμα περιήγησης στραμμένο προς CSS ή JS αρχείων σελίδα που ήταν ASP.NET 404 και όχι το *παραδοσιακό* σελίδα 404 λάθους.


Έτσι πήγα στον διευθυντή IIS7 και στο πλαίσιο διαλόγου Handler αντιστοιχίσεις. Πρόσθεσα ένα νέο πρόγραμμα χειρισμού που καθορίζονται ο τύπος System.Web.StaticFileHandler και έδωσε παράταση * .css. Στη συνέχεια, επανέλαβε ότι για * .js, * .PNG και * .GIF αρχεία. Όταν ανανεώνεται η ιστοσελίδα στο πρόγραμμα περιήγησης, τα πάντα καθίστανται perectly. Τα παρακάτω στιγμιότυπα αποδεικνύουν αυτή τη διαδικασία.


Το Παράθυρο Αντιστοιχίσεις χειρισμού: 


![αντιστοιχίσεις χειριστή](https://bradygstorage.blob.core.windows.net/images/managed-handler.png)


Προσθέτοντας μια νέα Υπεύθυνη για τη διαχείριση Handler


![alt κείμενο](https://bradygstorage.blob.core.windows.net/images/add-managed-handler.png)


Αυτό επιλυθεί το πρόβλημα, και τώρα έχω μια τέλεια λειτουργία MVC app φιλοξενείται σε W2K. Ώρα για μια Guinness. το πρόβλημα λύθηκε.

επειδή είχαν κολλήσει και οι ρυθμίσεις συστήματος και το xournal έψαξα στο internet και βρήκα

ότι για να ξεκολλήσουν οι ρυθμίσεις συστήματος να χρησιμοποιηθεί η εντολή

systemsettings5 --style=breeze

άλλαξα το global theme και όλα λειτουργούν κανονικά <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> μην πειραξεις τιποτα απλα αλλαξε την ip του εκτυπωτη σε 192.168.1.15 και βαλε αυτη στο cups στον υπολογιστη σου και σε καθε υπολογιστη/συσκευη που θελεις να το χρησιμοποιησεις. Εάν έχετε συνδεδεμένο `127.0.0.1`με το `my.cnf`αρχείο αυτό σημαίνει ότι μπορείτε να συνδεθείτε μόνο με τη βάση δεδομένων από τον τοπικό υπολογιστή βάσεων δεδομένων. `127.0.0.1`είναι η τοπική διεύθυνση loopback, επιτρέπει μόνο συνδέσεις localhost. Εάν είστε ιστοσελίδα δεν φιλοξενείται στον ίδιο server αυτός είναι ο λόγος που δεν μπορείτε να συνδεθείτε.


Αν θέλετε να συνδεθείτε με τη βάση δεδομένων σας από έναν άλλο διακομιστή δεσμεύουν την LAN IP του server της βάσης δεδομένων στο `my.cnf`αρχείο.


Στη συνέχεια μπορείτε να βάλετε τη LAN IP διεύθυνση του διακομιστή βάσης δεδομένων σε συμβολοσειρά σύνδεσης και θα πρέπει να είναι σε θέση να συνδεθείτε


σφάλμα σας είναι στην πραγματικότητα ένα σφάλμα σύνδεσης με το δίκτυο, που δεν επικυρώνει ακόμα και έτσι προσπαθεί διαφορετικά ονόματα χρήστη και κωδικούς πρόσβασης δεν πρόκειται να βοηθήσει. Μόλις διευθετηθεί τα θέματα του δικτύου θα λάβετε ένα διαφορετικό σφάλμα αν ο έλεγχος ταυτότητας αποτυγχάνει (π.χ. user @ host με τον κωδικό απέτυχε) Υπάρχουν τόσοι πολλοί παράγοντες για την απόδοση του server (CPU, RAM, I / O, μνήμη cache, τοπικές ή εξωτερική βάση δεδομένων, δικτύωση, κλπ) που δεν μπορείτε να guesstimate ακόμη και το ποσό των servers που απαιτούνται για ένα συγκεκριμένο έργο.


Θεωρώ ότι όποιος προσπαθεί να το καταλάβουν αυτό θα είναι κάτω τούτοις λάθος δρόμο, επειδή συχνά έχουν κάποια ρεαλιστική ιδέα ότι η περιοχή πρόκειται να κάνει αυτό πρόκειται να είναι εξωφρενικά δημοφιλές.


Η συμβουλή μου, μόνο την κατασκευή της εφαρμογής σας και να χρησιμοποιήσετε 1 διακομιστές, ας υποθέσουμε μπορεί να χρειαστεί ένα σύμπλεγμα διακομιστών, έτσι χτίσει το λογισμικό σας ανάλογα (η οποία με τη ΝΕΤ σημαίνει λίγο πολύ ότι δεν κάνει τίποτα διαφορετικό). Μόνο αγοράσουν περισσότερους servers όταν έχετε μια πραγματική ανάγκη, την αγορά / ενοικίαση διακομιστών σε αναμονή θα οδηγήσει πάντα να σπαταλούνται τα χρήματα, δεν είστε Amazon, ούτε το Google, δεν μπορούμε να υποθέσουμε με ακρίβεια τη μελλοντική επέκταση μέχρι να έχετε τα σημερινά στοιχεία.


Νομίζω ότι θα βρείτε 1 καλή server είναι εκπληκτικά γρήγορο και μπορεί να χειριστεί πολλούς χρήστες. Λάβετε υπόψη StackOverflow (τελευταία είδα) λειτουργεί μόνο σε 2 servers? ένα web server και ένα διακομιστή βάσης δεδομένων ... αυτό είναι όλο. Τα θέματα Python είναι καλό για **ταυτόχρονες προγραμματισμό I / O** . Τα θέματα που αντάλλαξαν έξω από το CPU μόλις έχουν μπλοκάρει αναμονής για την είσοδο από το αρχείο, δίκτυο, κ.λπ. Αυτό επιτρέπει σε άλλα θέματα Python για να χρησιμοποιήσετε τη CPU, ενώ άλλοι περιμένουν. Αυτό θα σας επιτρέψει να γράψετε ένα multi-threaded διακομιστή web ή web crawler, για παράδειγμα.


Ωστόσο, οι Python θέματα σε συνέχειες από την [GIL](http://en.wikipedia.org/wiki/Global_Interpreter_Lock) κατά την είσοδό του πυρήνα διερμηνέα. Αυτό σημαίνει ότι αν δύο θέματα που είναι γηπέδου αριθμοί, μόνο ένας μπορεί να τρέξει σε οποιαδήποτε δεδομένη στιγμή. Σημαίνει, επίσης, ότι δεν μπορείτε να επωφεληθείτε από multi-core ή multi-επεξεργαστή αρχιτεκτονικές.


Υπάρχουν λύσεις όπως το τρέξιμο πολλαπλών διερμηνέων Python ταυτόχρονα, χρησιμοποιώντας μια βιβλιοθήκη σπείρωμα C βασίζεται. Αυτό δεν είναι για τον εξασθενημένο της καρδιάς και τα οφέλη μπορεί να μην αξίζει τον κόπο. Ας ελπίσουμε για ένα all λύση Python σε μια μελλοντική έκδοση.