Si la herramienta está haciendo cosas no entiendo y, a continuación, vuelve a fallar en el paso n de un número desconocido de pasos, Estás muerto en el agua…
</final>
Si la herramienta está haciendo cosas no entiendo y, a continuación, vuelve a fallar en el paso n de un número desconocido de pasos, Estás muerto en el agua…
</final>
Una vez más me elaborar archivos de BDC ADF a mano (por lo que yo puedo construir mi "Get off my lawn!" cred) y golpeó este error encantadora:
"Error de importación de definición de aplicación. Ocurrió el siguiente error:"
Como se puede ver, hay un error, pero … no va a decirme lo que es.
En mi caso, el problema resultó que había comenzado con un ADF funcional para un proyecto diferente que conectado a una base de datos y ejecuta una consulta contra una vista SQL. En este nuevo proyecto, Estoy llamando a un método en un servicio web. Había despojado a la materia específica de DB y mis cosas de servicio web ha añadido, pero no se pudo actualizar la <LobSystem>de atributo type. Me cambié a "WebService" y pasó felizmente a errores de importación más reciente y más emocionante, que se manejaron en el momento oportuno.
Aquí está el mal LobSystem:
<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "base de datos"
Versión = "1.0.0.0" Nombre = "xyzzy"
xmlns ="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
Esto es correcto:
<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "WebService"
Versión = "1.0.0.0" Nombre = "xyzzy"
xmlns ="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
</final>
ACTUALIZACIÓN: Este registro de MSDN tiene algunas observaciones interesantes de JXJ basado en su, principalmente negativo, experiencias bajando esta ruta: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
Tenemos un escenario de negocio donde necesitamos vincular dos bibliotecas de documentos a través de un común "ID de documento" campo.
A menudo se utiliza una columna de búsqueda que implementa enlaces como este. Hay varias desventajas a las columnas de búsqueda, tres de los cuales se:
Respaldado por el BDC, podemos utilizar un "datos del negocio" tipo de columna y proporciona una búsqueda superior e incluso permite varias columnas de datos que aparecen en vistas de lista.
He tenido algunos éxitos preliminares con este enfoque y planea escribir más sobre esto.
Si has trabajado este ángulo antes y tiene algún comentario, por favor comparta!
</final>
He estado trabajando con BDC hoy, codificación de archivos ADF con la mano y me genera unos errores. Un tal error:
Error al importar de definición de aplicación. Ocurrió el siguiente error: No se pudo cargar el tipo descrito por el TypeName del TypeDescriptor. Nombre de parámetro: typeName Error se detectó en o justo antes de la línea: 35’ y la posición: '20'.
MOSS aparece este error cuando trató de importar el archivo XML de ADF.
Investigué los Internets y encontró que yo me haga referencia al nombre de instancia LOB (desde la <LobSystemInstance>) en mi <TypeDescriptor> nodo cuando debo haber hace referencia al nombre de línea de negocio propio (De <LobSystem>).
Mal:
<TypeDescriptor TypeName="Conchango.KeyValue, Nombre de la instancia LOB" Nombre = "KeyValue">
Corregir:
<TypeDescriptor TypeName="Conchango.KeyValue, Nombre de la unidad de negocio" Nombre = "KeyValue">
Espero que este alguien guarda una o dos horas de tiempo.
</final>
Estaba trabajando en una función la semana pasada que añadiría algunos receptores de eventos a una instancia específica de la lista. (He mencionado un poco sobre ese receptor lista aquí).
Utilizando la línea de comandos, Pude instalar la característica con ningún error (pero véase más abajo para el error oculto). Cuando trató de implementar la función en el sitio, MOSS se quejó de una "FileNotFoundException" error. Esta entrada de blog describe cómo lo solucioné.
Este es el error que MOSS me mostró en el navegador web:
Característica ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ no se pudo instalar porque la carga de la unidad del receptor de sucesos "xyzzyFeatureReceiver_0" no se pudo: System.IO.FileNotFoundException: No se pudo cargar archivo o ensamblado ' xyzzyFeatureReceiver_0’ o una de sus dependencias. El sistema no puede encontrar el archivo especificado.
Nombre de archivo: ' xyzzyFeatureReceiver_0’
en System.Reflection.Assembly.nLoad(Nombre de archivo AssemblyName, Cadena codeBase, Pruebas assemblySecurity, Asamblea locationHint, StackCrawlMark& stackMark, ThrowOnFileNotFound Boolean, ForIntrospection Boolean)
en System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Pruebas assemblySecurity, StackCrawlMark& stackMark, ForIntrospection Boolean)
en System.Reflection.Assembly.InternalLoad(Cadena assemblyString, Pruebas assemblySecurity, StackCrawlMark& stackMark, ForIntrospection Boolean)
en System.Reflection.Assembly.Load(Cadena assemblyString)
en Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
AVS: Registro de enlace de la Asamblea esté apagado.
Para habilitar el registro de falla de enlace de Asamblea, establecer el valor del registro [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) Para 1.
Nota: Hay alguna penalización de rendimiento asociado con el registro de fracaso de Asamblea bind.
Para desactivar esta característica, eliminar el valor del registro [HKLMSoftwareMicrosoftFusion!EnableLog].
Sé cómo deliberadamente causar ese error: No instale al ensamblado en la GAC. Pero, fue en la GAC. Normalmente instalar a ensamblados en la GAC arrastrándolas hasta la c:\carpeta windowsassembly explorador de windows. Nunca he sentido 100% cómodo hacerlo, porque siempre pensé que Gacutil existe por una razón … así que intenté. No hace ninguna diferencia.
He buscado en las Internets y encontré este post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
El cartel pasó a usar la misma broca de raíz del código (en el libro de WSS dentro de esta lista) así que esa fue una señal de esperanza. Sin embargo, la sugerencia de decorar el conjunto con un [Asamblea: ] Directiva no tiene sentido para mí. De todos modos lo probé y tenía razón. No hace ninguna diferencia.
Entonces me di cuenta que mi definición de la clase no era público. Le hice público y que no hizo ninguna diferencia.
Siguiente, Fui a la molestia de permitir que la "Asamblea bind fallo registro" (siguiendo las instrucciones útiles y precisas proporcionados) y esto es donde las cosas comenzaron a obtener interesantes. Ese registro me muestra que el tiempo de ejecución busca por todas partes en el servidor para mi montaje. Incluso parece ser buscando en mi botiquín. Pero … no busca en la GAC.
Puse en mi chaqueta de invierno e ir a buscar los Internets y encontrar que alguien ha tenido este problema también. La larga discusión en publicación peters apagado en nada y no encuentro una solución.
Muevo mi Asamblea en uno de los lugares que el registro afirma está buscando y hacer avanzar un poco más. Yo estoy recompensado con un nuevo error en el navegador cuando intento activar la función de:
Error al crear el objeto receptor de característica del conjunto "xyzzyFeatureReceiver_0", Escriba "Conchango.xyzzyFeatureReceiver" para la función b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Valor no puede ser nulo.
Nombre de parámetro: tipo
en System.Activator.CreateInstance(Tipo tipo, Privada booleano)
en System.Activator.CreateInstance(Tipo tipo)
en Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Tiempo para un último viaje a las Internets!
Esta vez puedo saber, como era de esperarse lo suficientemente, que MOSS emite este error porque la Asamblea no está en la GAC.
Quiero sacar algo positivo de esto y tratar de sentir un poco orgullosos que he creado el Fugitivo de ensamblados MSIL, pero no funciona. Estoy molesto solo llano. Me encontré murmurando "huevo o la gallina" bajo mi aliento.
Finalmente decido punt. Crear un proyecto completamente nuevo y copiar/pegar el código del proyecto incredible-cloaked-from-the-GAC-assembly no trabajo sobre este nuevo proyecto. (Busco una bandera de compilación llamada algo así como "hide from enlace si instalado en el GAC" pero no puede encontrar uno).
Instalar la característica y activarlo y … funciona! Por lo tanto, Después de todo lo que, Básicamente tuve que ' reiniciar’ mi proyecto. Esta es otra razón por qué odio a equipos.
Aprendo algo útil de este. Había instalado características usando la línea de comandos stsadm todo el dia y la "-la fuerza" opción por costumbre. Por alguna razón, No utilizo la fuerza opción - cuando he instalado el nuevo proyecto. A esta hora, Hice realidad, realmente olvide copiar el montaje de este nuevo proyecto en la GAC. Como un resultado, Recibí esa FielNotFoundException"" error. A esta hora, I got it from stsadm, no cuando trató de activar la función vía el web browser. Por lo tanto, -fuerza realmente juega dos papeles. Le permite volver a instalar una característica existente. También le permite instalar una característica buggy que no puede trabajar en tiempo de ejecución mediante la supresión de los errores. Probablemente dice tanto en la ayuda en alguna parte pero nunca lo noté.
</final>
===
Broma de esposa de bono:
Dos compañeros de trabajo varones salen a almorzar. Uno de ellos le dice al otro, "Desató un resbalón freudiano vergonzoso la otra noche."
"Una freudiana slip? Qué es eso?"
"Bien, cuando terminamos de comer, la camarera se acercó y preguntó cómo valoramos nuestras comidas. Quise decir, ' Me encantó la pechuga de pollo’ pero en cambio me dijo 'Me encantó sus senos'. Estaba tan avergonzado."
"Ah," su compañero respondió:. "He tenido lo mismo me sucede este fin de semana con mi esposa. Nosotros estábamos desayunando que quería pedirle que pase la mantequilla, pero en cambio grité en ella, ' Usted arruinó mi vida!’"
</final>
ACTUALIZACIÓN (04/08/08): Me parece que han solucionado este problema. La línea de comandos, Corrí "c:\windowssystem32lodctr /R" Según una entrada hablando de InstallShield problemas y parece que han resuelto para mí.
He notado últimamente, mi ventilador de escritorio/servidor nunca se apaga. Sé que se utiliza para apagar. Tomó un momento para comprobar lo notó que el un proceso VMware funcionaba un constante 20% utilización en una de las CPU. Revisé el registro de sucesos y vi estos errores en el registro de aplicación sucede decenas de veces por minuto:
Windows no puede cargar contador extensible DLL UGatherer, el primer DWORD de la sección de datos es el código de error de Windows.
Windows no puede cargar contador extensible DLL UGTHRSVC, el primer DWORD de la sección de datos es el código de error de Windows.
Windows no puede cargar contador extensible DLL MSSCNTRS, el primer DWORD de la sección de datos es el código de error de Windows.
Si profundizar en los detalles de uno de esos mensajes, Me sale esto:
Fuente: Perflib
Tipo: Error
Categoría: Ninguno
ID de evento 1023
Hice algunas investigaciones y había algunos indicios de que podría ser un problema de permiso en términos de acceso a la dll en cuestión. Jugaba con ese tipo de cosas, pero no podría afectar las cosas de una manera positiva por lo que desistí en eso.
VMware ha sido permanentemente me acerca de cómo realizar una actualización desde hace bastante tiempo, así apuntó la versión tenia instalado (al parecer "1.0.1 construir 29996") e hice la actualizacion. Esto me actualizó a la v1.04. Lamentablemente, no se arreglar el problema.
Puedo dejar el loco número de mensajes va a mi registro de aplicación si cierra un servicio denominado "Servicio de autorización de VMware". Esto me impide usar el software de VMware, por lo que … no esa una gran opción.
El sistema operativo es Windows XP 64 bit.
No creo que esto ha sucedido siempre, pero no recuerdo ningún evento concreto que podría haber conducido a ella.
Por eso odio equipos.
</final>
ACTUALIZACIÓN: Esto funciona, pero existen limitaciones significativas que se describen en los comentarios. Esto todavía puede ser útil en algunas circunstancias.
ACTUALIZACIÓN 2: En mi proyecto actual, los usuarios siempre subir documentos. Como un resultado, No ejecutar en un problema donde MS Word se está ejecutando y piensa que el archivo fue retitulado en él. Puso en marcha en un problema, "el archivo fue modificado por alguien" y esta solucionado por medio de una bandera de tipo semáforo simple. Los usuarios necesitan cambiar un campo de datos de la meta de su valor por defecto a algo más. El itemupdated() receptor busca un valor antes de realizar efectivamente el cambio de nombre y desde entonces, No he tenido ningún problema. Su kilometraje puede variar.
Tengo un requerimiento del cliente para cambiar el nombre de los archivos subidos a una biblioteca de documentos específica de conformidad con una Convención de nomenclatura particular. El API no proporciona un "cambio de nombre()" método. En su lugar, Utilizamos "MoveTo(…)". Aquí es un poco un mínimo del código para lograr esto:
público reemplazar void ItemAdded(SPItemEventProperties propiedades) { SPFile f = properties.ListItem.File; f.moveTo(propiedades.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Sólo complicado es "propiedades. ListItem.ParentList.RootFolder.Url". El MoveTo() método requiere una dirección URL. Puré de puntos cadena me a la carpeta raíz de mi biblioteca del documento actual. Esto me permite evitar cualquier codificación dura en mi receptor de evento.
Esta es una versión más útil que hace lo mismo, pero se asigna el nombre del archivo a "Título":
público reemplazar void ItemAdded(SPItemEventProperties propiedades) { DisableEventFiring(); // Asignar el título de este tema con el nombre del propio archivo. // NOTA: Esta asignación debe realizarse antes de modificar el archivo en sí. // Llamar a update() en el SPFile parece invalidar las propiedades // algún sentido. Actualizaciones a "título" no se pudo hasta que cambie (y actualización() llamar) // fueron trasladados en frente del cambio en el nombre de archivo. propiedades.ListItem["El título"] = properties.ListItem.File.Name; propiedades.ListItem.Update(); SPFile f = properties.ListItem.File; // Obtener la extensión del archivo. Necesitamos más tarde. cadena spfileExt = Nuevo FileInfo(f.Name).Extensión; // El nombre del archivo de ID del elemento de la lista y utilizar la extensión de archivo para mantener // esa parte intacta. f.moveTo(propiedades.ListItem.ParentList.RootFolder.Url + "/" + propiedades.ListItem["ID"] + spfileExt); // Cometer el movimiento. f.Update(); EnableEventFiring(); } |
Becario, "Mark", ha puesto en marcha una discusión newsgroup potencialmente interesantes centrándose en el "establecimiento de excelente gestión de SharePoint desde el principio" para un 35,000 entorno de usuario.
La discusión está aquí: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6
Pop en sobre y contribuir!
</final>
Sigo en el hábito de elaboración de mis archivos XML característica a mano ya que es bastante nuevo para mí. No quiero confiar en una herramienta front-end que hace cosas que no entiendo (dijo mientras escribía una entrada de blog usando una herramienta que no entiende).
Hoy en día, Estaba tratando de agregar una acción personalizada para la configuración del sitio, pero no demuestran para arriba. Pude instalar la función y ver en las características del sitio, Pero cuando lo activé (sin error) simplemente no aparece en el menú desplegable.
Finalmente me di cuenta de que mal escrito "SharePoint" en el atributo de la ubicación de la <CustomAction> nodo. Este es el archivo elements.xml mal:
<?XML Versión="1.0" codificación="UTF-8" ?> <Elementos xmlns="http://schemas.Microsoft.com/SharePoint/"> <CustomAction ID="SiteActionsToolbar" ID de grupo="SiteActions" Ubicación="Microsoft.Sharepoint.StandardMenu" Secuencia="100" Título="Hola!" Descripción="Acción del menú personalizado mediante una función de agregado." ImageUrl="_layouts/images/menuprofile.gif"> <UrlAction URL="http://www.XYZZY.com"/> </CustomAction> </Elementos> |
Buena:
<?XML Versión="1.0" codificación="UTF-8" ?> <Elementos xmlns="http://schemas.Microsoft.com/SharePoint/"> <CustomAction ID="SiteActionsToolBar" ID de grupo="SiteActions" Ubicación="Microsoft.SharePoint.StandardMenu" Secuencia="100" Título="Hola!" Descripción="Acción del menú personalizado mediante una función de agregado." > <UrlAction URL="http://www.XYZZY.com"/> </CustomAction> </Elementos> |
That one took me a good two hours to figure out 🙂
Me consuela el hecho de algún día en el futuro, Seré capaz de decir con convicción, "en el día, Tuve que caminar tres kilómetros arriba de la colina en la nieve (pies descalzos!) para implementar una función personalizada para musgo. Que los niños, No sabes lo fácil que tenerlo! Bajar mi césped!"
No puedo esperar.
</final>