Z39.50 is a client-server protocol for searching and retrieving information from remote computer databases. It is covered by ANSI/NISO standard Z39.50, and ISO standard 23950. The standard's maintenance agency is the Library of Congress. Z39.50 is widely used in library environments and is often incorporated into integrated library systems and personal bibliographic reference software. Interlibrary catalogue searches for interlibrary loan are often implemented with Z39.50 queries.Work on the Z39.50 protocol began in the 1970s, and led to successive versions in 1988, 1992, and 1995. The Common Query Language is based on Z39.50 semantics.
It supports a number of actions, including search, retrieval, sort, and browse. Searches are expressed using attributes, typically from the bib-1 attribute set, which defines six attributes to be used in searches of information on the server computer: use, relation, position, structure, truncation, completeness. The syntax of the Z39.50 protocol allows for very complex queries.
In practice, however, the functional complexity is limited by the uneven implementations by developers and commercial vendors. The syntax of Z39.50 is abstracted from the underlying database structure; for example, if the client specifies an author search (Use attribute 1003), it is up to the server to determine how to map that search to the indexes it has at hand. This allows Z39.50 queries to be formulated without having to know anything about the target database; but it also means that results for the same query can vary widely among different servers. One server may have an author index; another may use its index of personal names, whether they are authors or not; another may have no name index and fall back on its keyword index; and another may have no suitable index and return an error.
I have developed a z39.50 client which is based on zoom.net (which in turn uses the YAZ.dll to incorporate the z39.50). The client has been built on c#.net. Here I have used some basic queries of searching via author, title and publisher. Further I have used only AND and OR clauses in the query. The record is being fetched in MARCXML and selected parameters are displayed to user. The application is successfully retrieving data from the loc server whose connection parameters are:
You can get the Zoom.Net dll from here [zoom.net dll] and the Yaz.dll from here [Yaz dll]. The support that the above mentioned server gives in regard to query syntax and symantics is described in loc server page. Kindly refer it to know more about the LOC server that I have used to query in the application.
The code for it is :
//namespaces to include
using Zoom.Net.YazSharp;
using Zoom.Net;
using System.Xml;
//create a connection and provide the server details. Here I have used the LOC server
Connection ob1 = new Connection("z3950.loc.gov", 7090);
//provide the name of the database on the server
ob1.DatabaseName = "Voyager";
//define the syntax type that will be required. Here i am defining XML viz MarcXml
ob1.Syntax = Zoom.Net.RecordSyntax.XML;
//Connect to the server
ob1.Connect();
//Declare your query
query = "Title=\"" + txtTitle.Text.Trim() + "\"";
//Create the object for query.
Zoom.Net.YazSharp.CQLQuery q = new CQLQuery(query);
IResultSet results;
//perform search
results = (ResultSet)ob1.Search(q);
Now iterate through to the results and get the xml of each record fetched and derive from it the needed values.
for (uint i = 0; i < results.Size; i++)
{
string temp = Encoding.UTF8.GetString(results[i].Content);
//This string is having the xml in string format. Convert it into the xml via XmlDocument
XmlDocument doc = new XmlDocument();
doc.LoadXml(temp);
//perform the needful operations
//...............
//...............
//...............
}
Hope this helps... Do keep me updated about your views and queries.
A comprehensive and exhaustive list of avaliable z39.50, sru and srw servers is given in indexdata website. Another list having avaliable z39.50 free softwares is in loc website.
It supports a number of actions, including search, retrieval, sort, and browse. Searches are expressed using attributes, typically from the bib-1 attribute set, which defines six attributes to be used in searches of information on the server computer: use, relation, position, structure, truncation, completeness. The syntax of the Z39.50 protocol allows for very complex queries.
In practice, however, the functional complexity is limited by the uneven implementations by developers and commercial vendors. The syntax of Z39.50 is abstracted from the underlying database structure; for example, if the client specifies an author search (Use attribute 1003), it is up to the server to determine how to map that search to the indexes it has at hand. This allows Z39.50 queries to be formulated without having to know anything about the target database; but it also means that results for the same query can vary widely among different servers. One server may have an author index; another may use its index of personal names, whether they are authors or not; another may have no name index and fall back on its keyword index; and another may have no suitable index and return an error.
I have developed a z39.50 client which is based on zoom.net (which in turn uses the YAZ.dll to incorporate the z39.50). The client has been built on c#.net. Here I have used some basic queries of searching via author, title and publisher. Further I have used only AND and OR clauses in the query. The record is being fetched in MARCXML and selected parameters are displayed to user. The application is successfully retrieving data from the loc server whose connection parameters are:
Server name : z3950.loc.gov
Port : 7090
Database : Voyager
The code for it is :
//namespaces to include
using Zoom.Net.YazSharp;
using Zoom.Net;
using System.Xml;
//create a connection and provide the server details. Here I have used the LOC server
Connection ob1 = new Connection("z3950.loc.gov", 7090);
//provide the name of the database on the server
ob1.DatabaseName = "Voyager";
//define the syntax type that will be required. Here i am defining XML viz MarcXml
ob1.Syntax = Zoom.Net.RecordSyntax.XML;
//Connect to the server
ob1.Connect();
//Declare your query
query = "Title=\"" + txtTitle.Text.Trim() + "\"";
//Create the object for query.
Zoom.Net.YazSharp.CQLQuery q = new CQLQuery(query);
IResultSet results;
//perform search
results = (ResultSet)ob1.Search(q);
Now iterate through to the results and get the xml of each record fetched and derive from it the needed values.
for (uint i = 0; i < results.Size; i++)
{
string temp = Encoding.UTF8.GetString(results[i].Content);
//This string is having the xml in string format. Convert it into the xml via XmlDocument
XmlDocument doc = new XmlDocument();
doc.LoadXml(temp);
//perform the needful operations
//...............
//...............
//...............
}
Hope this helps... Do keep me updated about your views and queries.
A comprehensive and exhaustive list of avaliable z39.50, sru and srw servers is given in indexdata website. Another list having avaliable z39.50 free softwares is in loc website.
Thanks for the update... i'll surely try to do the same in my application. Meanwhile i will try to get to you the list of other z39.50 servers connection url and database name.
ReplyDeleteCould you upload de sample's files?? =)
ReplyDeleteHi friend, i dont know how works the yaz.dll, may you help me?? I need to do a c# z39.50 client, please help me!! :(
ReplyDeleteFor learning more about yaz.dll refer to http://www.indexdata.com/yaz For building a z39.50 client you first need to clear your basics regarding it. more more go to loc site www.loc.gov/z3950
ReplyDeletedon´t work for me, I tried with VS2008 and Win 7, the line
ReplyDeleteConnection ob1 = new Connection("z3950.loc.gov", 7090);
returns an error, any idea why?
Could you upload the project files?
Have you added reference to Zoom.Net and Zoom.Net.YazSharp dlls to your application ? This error seems to arise due to this. Also is your system connected to internet?
ReplyDeleteThanks for the code. It helped me a lot and is surely working... though i had some problem with xml format.... but i sort it out... keep up the good work !
ReplyDeleteHi, Jaivardhan.
ReplyDeleteDo you have document of yazsharp ? Can you share me them ? they 're important in my project. Thanks you.
I´m very interesting about z39.50 code, but I have some questions, my msn address is polo8896@hotmail, maybe someone wants to help me.
ReplyDeleteThe short-coming of using yazsharp is that its documentation is non-existent. All the work I have done on it via R&D. I hope the makers of yazsharp come up with its documentation.
ReplyDelete@Paul. You can put up your questions directly here. It may others who are facing the same problem.
Hello!
ReplyDeleteYou saw a good source. I can not figure out the source of the query syntax.
If the "select * from where title in ( 'aaa', 'bbb') and isbn = 'ccc'" What happens when you convert to CQLQuery?
Do not mind if you made "LibCyb Z39.50 Client" program, the source is required.
Please.
gingsft@gmail.com
The CQLQuery is currently not supported by the Server name : z3950.loc.gov, Port : 7090, Database : Voyager . Its details can be found on the loc site. To get a server which is supports CQL-query you have to do some searching for avaliable servers
ReplyDeleteHello,
ReplyDeleteI develop a customer Z3950 and I have a problem to define the options of connections. You tried to apply options on the connection with the library zoom.net ?
Thanks,
I downloaded the yaz.dll and tried to add it as a reference to my project in Visual studio 2008 but I get the error:
ReplyDelete"A reference to yaz.dll could not be added. Please make sure that the file is accessible and it is a valid assembly or COM component"
I suppose the yaz.dll is required to build my Z39.50 application.
What should I do to add the yaz.dll reference??
The yaz.dll is not an .net assembly i.e. it is not written in .net. For implementing it you have to make a wrapper class in .net for it (which would be quite time consuming). I would advice to rather go for zoom.net dll which itself manages the wrapper classes and you can easily add its reference to your .net application. The link for it is given in the article. Hope this helps...
ReplyDeleteThat's right the problem with YAZ.dll is that it is not made in .net so it takes quite an effort to use it with .net. Further i cannot understand why did the development of zoom.net was stopped few years back. It should continue so that the .net developers can benefit and implement the z39.50. If anyone has any new update kindly share.
ReplyDeleteThank you for your reply. It really helped me!!
ReplyDeleteNow I have another problem. Maybe someone faced it before and can help me.
I need to perform the search on
Host platonas.lib.ucy.ac.cy
Port 210
Database Name ADVANCE
but I get the error
Zoom.Net.Bib1Exception: MalformedQuery
at the
results = (ResultSet)ob1.Search(q); line
Do you have any idea on solving this??
Can you share the exact query. Further I would like to share one main point that everyone misses. The query is specific to the server i.e. how does the server manipulate and parse it varies from server to server. Also the number of query elements (like, and, or, any etc.) that the server might support also vary. So go through the server supported query syntax and tags, which generally are provided by the server admin or help. Hope this helps.
ReplyDeletePS: Kindly share your name, it's kind of awkward to address a reply to "Anonymous". I hope you will understand :)
Thanks Jai for the comments. Really nearly all of us forget his thing and try to seek the same type of query on various servers, not considering if the server support the query (and its elements) or not. I would be regularly visiting your blog for updates. Again thanks and keep up the good work !
ReplyDeleteThanks for the answer. I case someone else is having the same problem, I solve it by creating a PrefixQuery and the query to be like "@attr 1=4 xxxx" since the server I was searching on could not understand the CQLQuery -> Title= "xxxx".
ReplyDeleteP.S. sorry for the "Anonymous" :)
how do i implement a simple z39.50 server?(1-get client request 2-search in library 3-and return result to client)
ReplyDeleteFirstly define the parameters for searching that you want to give to the user and the server can process. Then make a good parser that can de-parse the query sent by the user and check it for errors and formatting. After this design a good DB and optimize it for faster query retrieval. Also search accordingly to the search parameters available to user(LIKE, OR, AND , ANY, NOT). Lastly parse the result to be shown to the user as per the format and return the result.
ReplyDeleteHope this helps.
Could you show sample display data to gridview
ReplyDeletethank you.
Thanks Jai for the wonderful post explaining the Z39.50 and how to make its client in .net. Also you gave a good insight on how a server behaves and its properties that most of us usually miss and try to query all the servers with the same type of syntax. Your comment on it really helped me.
ReplyDeleteAlso your comment on the components of a Z39.50 server brought out some good points that one need to keep in mind while developing it.
Once again thanks for all the updates and replies. You rock !!!
Love you !
This is very good topic and helpfull but when I implementing Z39.50 server client in .net there is a problem in connection to the server in loading the yaz.dll. It through exception System.DllNotFoundException : Unable to load yaz.dll. Can you please send me Source Code of this project on my email (anil.kumar.yadav@hotmail.com). It will very helpfull for us. Thanking you.
ReplyDeleteHi..
ReplyDeletehow can i create z39.50 server in .net.. this is client program..right.?
Quit nice post and it helped a lot ! The problem with yaz is that most work on it is done on open-source languages and very little is in .net. You really have done a tremendous work and thanks for sharing your work ! :)
ReplyDeleteHi. I added reference to Zoom.Net and Zoom.Net.YazSharp dlls and I'm connected to the internet. However, I keep getting a "type initializer for 'Zoom.Net.YazSharp.Connection' threw and exception' error. Any help is greatly appreciated.
ReplyDelete@Jay Mad it seems that the connection is not being made to the server. First check your connection string properties of the server i.e. Server name, port no. and database etc. Secondly is the server accepting these parameters ? Kindly checkout the server properties and features that it supports. Lastly you have mentioned that you are connected to the server, but at times I have noticed that the firewall or anti-virus also might block the connection being made to the server, do check on this part also.
ReplyDeleteDo keep me updated on the outcome.
Really nice post.
ReplyDeleteDo you also have any idea for retrieving dublin core xml records using this z39.50 client ? . I think it looks difficult to retrieve dc records since the recordsyntax enumeration does not contain "dc" option.
Dear Joshi
ReplyDeleteHave you ever tried to find a term in other languages, for example Arabic? I used the above code, this works fine for non-utf8 terms.
Could you please tell me what to do if we want to search in other languages?
amir.parsi@gmail.com
Thanks
@Amir Parsi, I have tried this code on many Indian languages, like hindi, urdu, punjabi, marathi, tamil, malayalam etc. and it works fine for all of them. So it should work fine for any other language.
ReplyDeleteFor searching in different languages my recommendation is extensive use of Unicode language. The server as well as the client should be compatible with unicode. By the use of it most of the problems associated with the syntax and semantics of various languages will be solved.
@Faisal... sorry for replying too late. This code also supports Dublin Core. For this just update the following line in the code:
ReplyDeleteob1.Syntax = Zoom.Net.RecordSyntax.DublinCore;
The latest version of Zoom.Net dll supports this feature.
Dear Jai
ReplyDeleteIn reply to your Oct.20th,
unfortunately I don't have access to the server to set it based on unicode. But, I know when I use yaz-client and use utf-8 charset, everything is OK.
This does not work in vb.net. I found this example in yaz documents:
@term string "a UTF-8 string, maybe?"
as a query string for pfq queries. But even this does not work for me.
I'm really mixed up!
Amir Parsi
@Amir Parsi I quote the following text
ReplyDelete"Most Z39.50 servers do not support proximity searching, or support only a small subset of the full functionality that can be expressed using the PQF proximity operator. Be aware that the ability to express a query in PQF is no guarantee that any given server will be able to execute it."
Ref :http://www.indexdata.com/yaz/doc/tools.html
So kindly first check if the server is supporting PQF queries. Try using some basic CQL queries. Hope this helps...
Je n'arrive pas a trouver une documentation pour la réalisation d'un serveur z39.50 !
ReplyDeleteMerci pour votre aide !
Bonjour!
ReplyDeleteLa documentation de z39.50 serveur est très rare et n'est pas disponible sur l'Internet. Ce n'est que par des recherches et d'expériences sur pouvons le construire.
Tout le meilleur pour elle!
Ji Jai, tnx for this code, but i'm getting same error as Jay Mad: "type initializer for 'Zoom.Net.YazSharp.Connection' threw and exception"
ReplyDeleteIve tries oter address beside the on you were using, but it always that error do you have suggestions (i've tried without firewall but no help)
Thanks Jai for the code... it worked for me. I had in past just lost hope of connecting to the server but after reading your post I was able to connect. Further your feedback was very helpful. :)
ReplyDeleteI have a problem. I using windows 7 and VS 2008 (64)
ReplyDeleteI copy-paste the code, I added references (Zoom.Net and Zoom.Net.YazSharp) that I downloaded from first link. I copied all files in Bin folder of my project. When application is running, the code:"Connection ob1 = new Connection("z3950.loc.gov", 7090);"
Send me this error:
System.TypeInitializationException: The type initializer for 'Zoom.Net.YazSharp.Connection' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'yaz': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at Zoom.Net.YazSharp.Yaz.yaz_log_init(Int32 level, String prefix, String name)
at Zoom.Net.YazSharp.Log.Init(Int32 level, String prefix, String name) in D:\Zoom.Net\Zoom.Net.YazSharp\Log.cs:line 37
Have you added reference to the Zoom.Net.YazSharp dll in your application ? Merely putting it in the bin folder will not work. The error clearly points this out.
ReplyDeleteThank you for your quick answer.
ReplyDeleteI add Zoom.Net.YazSharp dll to the reference. VS build it, but when it runs send me this error. I think it must be problem with yaz.dll. Do i need to download yaz.dll from second link? Because when i download zoom.net from first link it alredy have yaz.dll?
Thank you for your quick answer.
ReplyDeleteI added Zoom.Net.YazSharp in to reference. VS build the program but when it execute it, program send me that error.
Like I said I copy the code, download zoom.net from first link then I added references to Zoom.Net.YazSharp and Zoom.Net. Do I need to do anything else because the tutorial says that i have to download the yaz.dll but the zoom.net alredy have yaz.dll when I downloaded it?
I crossed checked it. It is working fine ! Also remember that when you download zoom.net you get a bin folder... inside this folder is debug and release folders.
ReplyDeleteNow most users make this mistake.. note carefully.
In case of web application you need to copy all the files inside the debug folder(from downloaded files) to the bin folder of your application.
In case of window application you need to copy all the files inside the debug folder(from the downloaded files) to the debug folder of your application.
This is because by default the Visual Studio IDE put all the dll inside the debug folder of bin in case of window application and in the bin folder of web application. There is no debug folder inside the bin in case of web application.
Hope this helps many !!!
Hi again :)
ReplyDeleteI did copy all the files, included them in my project, turned off my firewall, pinged addresses so see if they're alive (and they are :)) but still the same...i'm crazy, always the same error:
"The type initializer for 'Zoom.Net.YazSharp.Connection' threw an exception."
with same InnerException:
"An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)"
Does anyone have any idea? It would be much appreciated
After closely examining the error described above I have a new thing to share with all. The zoom.net dll and yaz dll will only work with the x32 operating system and not with x64 operating system. This is so as the dll's are build only for the x32 operating system.
ReplyDeleteAs of now no x64 supporting version of the dll's is not avaliable. If anyone comes across them kindly share the download link.
I was just logging on to say it worked like a charm for me.. and THANKS.
ReplyDeleteThat said, it is working for me on Windows 7 64bit machine, without any problem. Not entirely sure why...
The only issues that I had is that one of my particular Z39.50 servers did not accept CQLQuery, and I had to switch to PrefixQuery, and then try to understand that new query language.
But, to pull a record by identifier, I used:
string query = "@attr 1=12 01381152";
Zoom.Net.YazSharp.PrefixQuery q = new PrefixQuery(query);
@Mark is your OS 64 bit or the hardware is 64 bit?
ReplyDeleteI downloaded only the Zoom.net download as well, since I saw that Yaz.dll was already present. I did NOT actually drop them into my bin folder though. Although I am using them in a web application (or testing for that) I am referencing them from a class library, so I simply browsed to and added Zoom.net and Zoom.net.yazsharp. Not sure that makes any difference though.
ReplyDeleteBoth are 64-bit. and I am using VS 2008 as well.
ReplyDeleteHmm, i'm also using win7 x64 with VS 2008, but no luck, still the same error, well i'll try to find dll's that are supported on x64 machines, if they exist...
ReplyDelete@Mark it seems that the VS 2008 is running your application in 32bit mode. That's the only reason why you are able to run the application. Check what is the target machine type in the VS 2008 IDE ("Any CPU" or x32 etc.) in configuration manager.
ReplyDeleteAs far as the referencing the dlls from class library, it will make no difference.
Hmm, i've tried setting my VS to work in x86 mode, but that didn't help at all, same error keep popping up :(
ReplyDeleteDamn, this is killing me :))
Hehehe, i finally managed to make it work, after setting my project Solution Platform to x86, including both files in my project and copying all .dll's from [Zoom.NET folder]\bin\Debug folder to newly generated [Solution Folder]\bin\x86\Debug folder.
ReplyDeleteNow i can connect successfully and no more exceptions. :))
Tnx Jai and everyone for helping!!!
hi
ReplyDeletei'm using Zoom.Net-1.0.2400.win32.Net2.0.50727
let see this code query = "@attr 1=4 " & Chr(34) & TextEdit1.Text & Chr(34)
i cannot search title or text with thai language
anyone have idea?
It was really detailed post. You have pointed out some interesting facts to which I was completely unaware. I am glad that I read your post.
ReplyDeletehave anybody can search with Unicode query?
ReplyDeleteplease share the idea.
thanks
Hi this is a very good topic
ReplyDeletebut i do have an error
Connection could not be made to z3950.loc.gov
at this line : results = (ResultSet)ob1.Search(q);
thanks :)
I have performed the search on
ReplyDeleteHost z3950.loc.gov
Port 7090
Database Name Voyager
but I get the error
Zoom.Net.Bib1Exception
at the
results = (ResultSet)ob1.Search(q); line
the same code you are using no changes, i have copied all the files inside the debug folder(from the downloaded files) to the debug folder of my application.
@Dina are you having any firewall or proxy installed in your network. It has been observed that it restricts connection to the LOC server.
ReplyDeletehello, is there any place we can find the full code for this? it will be useful for a university project.
ReplyDeletethank you
Jane
@jai
ReplyDeletethanks alot for your response.
Yes I use to have a firewall but I have disabled it.
now I am having a different error message
Unable to load DLL 'yaz.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
@Jai
ReplyDeleteSorry for bothering you
but i still getting the first error
but I get the first error after disabling the firewall
Zoom.Net.Bib1Exception
at the
results = (ResultSet)ob1.Search(q); line
the same code you are using no changes, i have copied all the files inside the debug folder(from the downloaded files) to the debug folder of my application.
for those who get this error
ReplyDeleteUnable to load DLL 'yaz.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
you need to register the yaz.dll using the following command
regsvr32 "the full path of the library\yaz.dll"
make sure to place it at the same place with the other dll of the project for the dependency
Best of luck
@Jai
ReplyDeletewhat about libraries that use USMARC, UKmarc, SUTRS?
How can i read these formats or convert them to xml format?
Your reply is very appreciated
@jai
ReplyDeletei wonder about the dublin core i didn't find any update for the zoom.net dll so if you know any refrence please let me know.
and thank's for your wonderful blog
Hi Jai,
ReplyDeleteI use VS 2008 and Win7 32 bit. I add Zoom.Net.YazSharp dll to the reference. VS build it, but when it runs send me this error
I have similar error above: The type initializer for ‘Zoom.Net.YazSharp.Connection’ threw an exception in line: Connection ob1 = new Connection("z3950.loc.gov", 7090);
Can you help me again? I tried but it not work.( I copied all the files, included them in my project follow u guide)
@Jai .. thanks for a wonderful and informative article.
ReplyDeletewhen i change the
ReplyDeleteServer name : lx2.loc.gov
Port : 210
Database : LCDB
showing error:Zoom.Net.Bib1Exception: UnsupportedUseAttribute
I want to implement z39.50 client using java.Can you give me code for z Client in java?
ReplyDeleteWhat will the requirements for it?
I do one program but at new time new errors are coming.
Please help me my email-id ids ashkhote@gmail.com
Thanks Jai for the code. It is working for me and helped me a lot in my college project.
ReplyDeletehi sir
ReplyDeletemy project is error
"results = (ResultSet)ob1.Search(q);"
Please help me!!! How to render records in Zoom.net? :(
ReplyDeleteThanks Jai for the code. Its working for me :)
ReplyDeleteIs there a way to search in different languages?
ReplyDeletewhen i search in Hebrew, i got errors. is it possible to fix that?
First of all check if the z39.50 server supports Hebrew language. If yes then try to send the query in unicode. Hope this helps
DeleteI think the server support Hebrew, since it got Hebrew books in it.
Deleteanyway, how do I send the query in unicode?
can you show me an example?
thanks.
This comment has been removed by the author.
ReplyDeleteEthan can you share the details of the z39.50 server that you are searching ?
ReplyDeleteThis comment has been removed by the author.
DeleteBy the way. I'm using PFQ for my searches which works for English Phrases like i said.
DeleteCan i use this same code for another server,port,Database?
ReplyDeleteYes you can, provided the server supports z39.50 protocol.
DeleteOk Thank you ,But how can i get that type of Server .I mean i am using visual studio 2010 can you give me that source code to get dynamically z39.50 protocol supporting servers.
DeleteHi Jai,
ReplyDeleteI am having A dllnotfound exception when I run an application on either Win7-64 bit or Windows server 2008 64-bits, here is the error message I get:
The type initializer for 'Zoom.Net.YazSharp.Connection' threw an exception.
Unhandled Exception: System.TypeInitializationException: The type initializer fo
r 'Zoom.Net.YazSharp.Connection' threw an exception. ---> System.DllNotFoundExce
ption: Unable to load DLL 'yaz': The specified module could not be found. (Excep
tion from HRESULT: 0x8007007E)
at Zoom.Net.YazSharp.Yaz.yaz_log_init(Int32 level, String prefix, String name
)
at Zoom.Net.YazSharp.Log.Init(Int32 level, String prefix, String name)
at Zoom.Net.YazSharp.Connection..cctor()
--- End of inner exception stack trace ---
at Zoom.Net.YazSharp.Connection.Finalize()
The application works fine on WinXp, Any suggestions are much appericited
Hi Jai,
DeleteI found the issue, I was missing a dependency dll "msvcr71.dll"
everything works fine now.
thanks
It works! Thanks!)
Deletehi
ReplyDeletehow to search record from ISBN i am able to retrieve record from server using ISBN
Can help me as soon as possible
hi
ReplyDeletehow to search record from ISBN i am not able to retrieve record from server using ISBN
Can help me as soon as possible
I got problem with HRESULT: 0x8007007E and I did fix by change pool in IIS7 to run at 32bits(enabled). We don't have 64 bit dll so iis cannot find that dll. :)
ReplyDeleteHi Jay,
ReplyDeleteI am trying use z39 via Pazpar2 and yaz if you have any idea, like how can i use with it please share with me. I am looking forward for response from your side
Can I use more than one database for searching with this
ReplyDeleteThank you very much. The ZOOM.net package and your sample code work perfect for me. The result set contains 406 records in xml format.
ReplyDeleteHi Jay.
ReplyDeleteFirst of all, Thank you for saving me a lot of time.
I consumed your code in my application and it was working fine on my dev machine. But when I published my application on IIS it was throwing a freaking error.
Error:
The type initializer for 'Zoom.Net.YazSharp.Connection' threw an exception.
Scenerio:
-Framework: 4.5
-Language: Vb.net
-Reference: Added Including all files
-Running on Development Machine
-Firewall Status: Off (Tried with both on / off - added port in firewall but nothing works)
Please Help.
In continuity with my Last Message:
ReplyDeleteScenerio Changed:
-Framework 4
-Language: vb.net
-All References Included
-Running on Development Machine
-Devepment Machine: Windows 8 64 bit
-Throwing Same Error on IIS Windows 8 64 bit but resolved after making App Pool Compatible with 32 bit application.
-Now I need to push it live on Windows 2008 R2 32 bit but It is throwing the same error.
Hi guy ,
ReplyDeleteI want sample z39.5 asp.net server
With the same code as in the example I get the following error when calling new Connection:
ReplyDeleteUnable to load DLL 'yaz': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
My Setup:
Visual Studio 2010
Tried on both Framework 4 and 2
Language C# (ASP.NET)
Operating System: Windows 7 32-bit
- Included both Zoom.Net and Zoom.Net.YazSharp reference
- Copied the debug to bin folder
- I read all the comments here and searched for this error online but no luck
Not sure if anyone is still following this thread but it would be great if anyone could help me out with this one.
I use Windows 8 64 bit and VS2010 and have the same problem as you. Here is the solution that work for me:
Delete1. Get source code from : http://svn.code.sf.net/p/zoomdotnet/code/trunk
2. Rebuild
3. Use dll that was rebuild and everything will be OK :)
This is to confirm Zoom.Net.YazSharp package requires a dependency dll "msvcr71.dll" in system folder or application bin folder.
DeleteI recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
ReplyDeleteI am getting the below error while executing the 1st line of code
ReplyDeleteUnhandled Exception: System.TypeInitializationException: The type initializer fo
r 'Zoom.Net.YazSharp.Connection' threw an exception. ---> System.DllNotFoundExce
ption: Unable to load DLL 'yaz': The specified module could not be found. (Excep
tion from HRESULT: 0x8007007E)
my system configuration as below
WINDOWS 7(64bit)
VS-2012(Ultimate Edition)
Framwork-3.5
i want to consume this service in my product either in ASP.NET code or WCF service and what will be the query.
Please help me out its very urgent.
Best Regard
Sinnam S Kushwah
This comment has been removed by the author.
ReplyDeleteAnyone having solution for using ZOOM.NET and Zoom.Net.YazSharp on 64 Bit Pc with ASP.NET 4.0
ReplyDeleteI am getting the result in xml format from the code provided. I am reconstructing the result in the way of requirement, but for different records the same tag means different field value. Ex : If search value is "modern physics" then tag no. "710" refers "other authors". where as for search value "biometry" the tag no. "710" refers "subjects". So please help me out from this confliction.
ReplyDeletehow to make z server form yaz in c#
ReplyDeletestring query = "Title=\"" + str + "\""; this query provides search only with Title.. Can any one provide the query to search with Author, ISBN, Published ??
ReplyDeleteWow! this is an interesting blog. Has anyone got a .Net web service, which I can call. I want to link my LMS web services written in C# with some managed code. I am currently using the YAZ.dll but not with zoom.net.
ReplyDeleteI am also looking for a z39.50 server in C#. Has anyone got one?
Very good work. Has anyone had any luck clearing up the "Unable to load DLL 'yaz': The specified module could not be found. (Exception from HRESULT: 0x8007007E)" problem? It seems that there is not clear cut answer in the comment area.
ReplyDeleteThis comment has been removed by the author.
DeleteProblem solved. I didn't see the comment underneath. Adding msvcr71.dll did the trick!
Deletehi jai, i want to connect all z3950 server but i cannot create common query. i have UnsportedQueryType problem. Help me pls, thanks.
ReplyDeleteHas anyone used ZOOM to successfully connect to a z3950 server that requires an ID/password? If so, how?
ReplyDeletehy sir how are you ?? sir iwant to create an asp.net application for library . i want to get information about the books from the library of congress by giving the tittle of book in a textbox but information of book ie issn publisher and auther will also retrive in textbox or label by clicking button because i want to save the information of book in my database plzzzz help me...
ReplyDeletereply plzzz sir
DeleteI wondered upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon.
ReplyDeleteMobile App Developers in India
Very nice post here and thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
ReplyDeletemicrosoft azure training in bangalore
rpa training in bangalore
best rpa training in bangalore
rpa online training
best ever
ReplyDeletedata science training in bangalore
Good Article
ReplyDeletedevops training in bangalore
hadoop training in bangalore
iot training in bangalore
machine learning training in bangalore
uipath training in bangalore
VISIT HERE => DEVOPS TRAINING IN BANGALORE
ReplyDelete//Declare your query
ReplyDeletequery = "Title=\"" + txtTitle.Text.Trim() + "\"";
please give a sample query instead of txtTitle.Text.Trim()
Could I use this DLL in a windows forms development?
ReplyDeleteWell, I really appreciated for your great work. This topic submitted by you is helpful and keep sharing...
ReplyDeleteCheap Uncontested Divorce in VA
Family Lawyer Cost
Best Family Court Lawyers Near Me
I appreciate your blog, from this session i got good knowledge. I admire your effort in writing valuable blogs. Thanks
ReplyDeleteconducción temeraria de virginia
divorce lawyers in virginia
abogados de divorcio en virginia
This comment has been removed by the author.
ReplyDeleteslot siteleri
ReplyDeletekralbet
betpark
tipobet
betmatik
kibris bahis siteleri
poker siteleri
bonus veren siteler
mobil ödeme bahis
2LKT2
van
ReplyDeletekastamonu
elazığ
tokat
sakarya
ZT6E
ankara parça eşya taşıma
ReplyDeletetakipçi satın al
antalya rent a car
antalya rent a car
ankara parça eşya taşıma
GYİ
Ağrı Lojistik
ReplyDeleteÇorlu Lojistik
Kars Lojistik
Antalya Lojistik
Rize Lojistik
CİCUY
30306
ReplyDeleteTekirdağ Evden Eve Nakliyat
Tunceli Evden Eve Nakliyat
Yalova Lojistik
Iğdır Lojistik
Muş Evden Eve Nakliyat
D354D
ReplyDeleteorder testosterone enanthate
order anapolon oxymetholone
buy turinabol
buy parabolan
order boldenone
sustanon
fat burner for sale
pharmacy steroids
order clenbuterol
34947
ReplyDeleteerzurum canlı görüntülü sohbet
Giresun Canlı Ücretsiz Sohbet
gümüşhane görüntülü sohbet odaları
van görüntülü sohbet kızlarla
manisa chat sohbet
kırşehir seslı sohbet sıtelerı
Sinop Görüntülü Sohbet Canlı
ankara kadınlarla ücretsiz sohbet
antalya en iyi görüntülü sohbet uygulamaları
I’m genuinely impressed by how clearly this topic was explained. It’s not often that something so complex is made so accessible. Huge thanks to the writer for breaking it down in such an understandable way! Visit our link for: ISO 9001 Certification In Tanzania
ReplyDelete